유틸리티

해시 생성기 사용법, MD5 SHA-256 해시값 만들고 비교하는 법

인터넷에서 프로그램을 다운로드했는데, 원본과 같은 파일인지 어떻게 확인할까. 용량이 같아도 내용이 바뀌었을 수 있다. 이때 쓰는 게 해시값이다.

해시값이란

해시(Hash)는 어떤 데이터를 고정 길이의 문자열로 변환한 결과다. 같은 입력이면 항상 같은 해시값이 나오고, 입력이 1글자만 달라도 결과가 완전히 바뀐다. 파일의 "디지털 지문"이라고 생각하면 쉽다.

주요 해시 알고리즘 비교

알고리즘출력 길이특징
MD5128비트 (32자)속도 빠르지만 충돌 취약점 있음. 보안 용도 비추천
SHA-1160비트 (40자)MD5보다 안전하나 역시 충돌 발견됨
SHA-256256비트 (64자)현재 가장 널리 쓰이는 보안 해시
SHA-512512비트 (128자)더 긴 출력, 대용량 데이터에 적합
주의 MD5는 충돌 취약점이 알려져 있어, 보안이 중요한 곳에서는 SHA-256 이상을 쓰는 게 안전하다. 단순 파일 확인 용도로는 MD5도 충분하다.

해시값은 어디에 쓰일까

파일 무결성 검증
소프트웨어 배포 사이트에서 SHA-256 해시를 함께 공개한다. 다운로드 후 해시값을 비교하면 파일이 변조되지 않았는지 확인할 수 있다.
비밀번호 저장
서버에 비밀번호를 그대로 저장하면 유출 시 위험하다. 해시로 변환해서 저장하면 원래 비밀번호를 역추적하기 어렵다.
데이터 중복 확인
파일 이름이 달라도 해시값이 같으면 내용이 동일한 파일이다. 중복 파일 정리에 활용된다.

해시값 생성하고 비교하는 법

윈도우 명령 프롬프트에서 certutil -hashfile 파일명 SHA256을 입력해도 되지만, 여러 알고리즘을 동시에 확인하거나 두 해시를 비교하려면 전용 도구가 편하다. 온라인 해시 생성기에 텍스트를 입력하거나 파일을 끌어다 놓으면 MD5, SHA-1, SHA-256, SHA-512 해시가 한 번에 생성된다. 비교 탭에서 두 해시값을 붙여넣으면 일치 여부도 바로 확인할 수 있다.

해시값 확인은 번거로워 보이지만, 중요한 파일을 다룰 때 한 번만 해두면 안심할 수 있다.