유틸리티

해시값 생성과 파일 무결성 검증하는 법 (MD5, SHA-256)

오픈소스 프로그램을 다운로드하면 옆에 SHA-256 값이 적혀 있을 때가 있다. 이게 뭔지 모르고 지나치는 경우가 많은데, 파일이 중간에 변조되지 않았는지 확인하는 검증용 코드다.

해시값이란

해시는 입력 데이터를 고정 길이의 문자열로 변환한 값이다. 같은 입력이면 항상 같은 해시가 나오고, 1바이트만 달라져도 완전히 다른 값이 된다. 이 특성 때문에 파일 변조 여부를 확인하는 데 쓰인다.

MD5, SHA-256, SHA-512 차이

알고리즘출력 길이보안 수준용도
MD5128비트 (32자)취약빠른 체크섬 확인
SHA-1160비트 (40자)취약레거시 시스템 호환
SHA-256256비트 (64자)안전파일 검증, 보안 용도 표준
SHA-512512비트 (128자)안전대용량 파일, 높은 보안 요구
주의 MD5는 충돌 공격이 가능해서 보안 목적으로는 쓰지 않는 게 좋다. 파일 무결성 확인에는 SHA-256 이상을 쓰는 게 안전하다.

해시값 생성하고 비교하기

해시 생성기에 텍스트를 넣거나 파일을 드래그하면 MD5부터 SHA-512까지 5가지 해시가 동시에 나온다. 파일을 서버에 올리지 않고 브라우저에서 바로 계산하기 때문에 민감한 파일도 부담 없다.

  1. 텍스트 탭에서 문자열을 입력하거나, 파일 탭에서 파일을 끌어다 놓는다.
  2. 5가지 해시값이 한 번에 생성된다. 필요한 값을 복사한다.
  3. 해시 비교 기능에 원본 해시와 내 해시를 넣으면 일치 여부를 바로 확인할 수 있다.

특히 ISO 파일이나 대용량 설치 파일을 받았을 때 배포 사이트에 적힌 SHA-256 값과 비교해보면 다운로드 중 파일이 깨졌는지 바로 알 수 있다.