“이 파일 #값이 맞는지 확인해보자.”
혹시 이런 말 들어본 적 있으신가요?
여기서 말하는 ‘#값’은 보통 해시값(hash value)을 의미합니다.
이 글에서는 해시값이 무엇인지, 왜 중요한지, 어떻게 비교하는지까지 쉽게 정리해드립니다.
해시값은 어떤 데이터에 해시 함수를 적용해 얻는 고정 길이의 문자열입니다.
예를 들어, 어떤 텍스트나 파일에 SHA-256 같은 해시 함수를 적용하면 아래와 같은 결과가 나옵니다:
원본 파일 → SHA-256 → 6a2da4d2b3a9… (64자리 해시값)
특징
- 입력 데이터가 1비트만 달라도 해시값은 완전히 다르게 나옴
- 해시값만 보고 원본을 복원할 수 없음 (단방향성)
- 주로 파일 무결성 검사, 암호화 검증, 디지털 서명 등에 활용됨
파일을 다운로드했거나, 암호화/복호화 후 원본과 같아야 할 때,
해시값을 비교하면 “정확히 동일한 파일인지”를 확인할 수 있습니다.
원본 파일과 복호화된 파일 각각의 해시값을 구함
두 해시값을 비교
| 해시 알고리즘 | 비트 수 | 특징 | 보안성 |
|---|---|---|---|
| MD5 | 128bit | 빠르지만 충돌 발생 가능 → 권장 X | 낮음 |
| SHA-1 | 160bit | 예전에는 많이 사용됨 | 낮음 |
| SHA-256 | 256bit | 현재 가장 널리 사용됨 | 높음 |
sha256sum original_file.txt
sha256sum decrypted_file.txt
두 파일의 해시값이 정확히 같으면, 복호화 결과가 원본과 동일한 것입니다.
| 구분 | 설명 |
|---|---|
| 해시값이란? | 데이터를 압축한 고정 길이 문자열, 1비트만 바뀌어도 완전히 달라짐 |
| 용도 | 무결성 확인, 복호화 검증, 보안 체크 등 |
| 사용 방법 | SHA-256 등으로 계산 후 비교 |
| 팁 | 리눅스는 sha256sum, 윈도우는 CertUtil 등 활용 가능 |