파일을 다운로드한 후에 정상적으로 받아졌는지 확인해야 할 때가 있습니다. 대용량 파일이 전송 중에 손상되었거나, 악성코드가 삽입된 가짜 파일일 수 있기 때문입니다. 원본 파일과 받은 파일이 같은지 비교하는 방법이 해시 검증입니다. 해시 생성기로 파일의 해시값을 만들어서 비교하면 됩니다.
해시란 무엇인가
해시는 어떤 데이터를 고정된 길이의 문자열로 변환한 값입니다. 파일 크기가 1KB든 1GB든 상관없이 같은 길이의 해시값이 나옵니다. 데이터가 조금이라도 다르면 완전히 다른 해시값이 나옵니다. 반대로 같은 데이터는 항상 같은 해시값을 만듭니다. 이 특성 때문에 데이터 무결성 검증에 사용됩니다.
MD5와 SHA의 차이
MD5는 128비트 해시를 생성합니다. 빠르고 간단하지만 보안 용도로는 약합니다. 같은 해시값을 만드는 다른 데이터를 찾는 충돌 공격이 가능하기 때문입니다. SHA256은 256비트 해시로 더 안전합니다. 현재 보안이 중요한 곳에서는 SHA256 이상을 권장합니다. SHA256 생성기에서 텍스트나 파일의 해시값을 바로 확인할 수 있습니다.
파일 무결성 검증 방법
소프트웨어 배포 사이트에서는 파일과 함께 해시값을 공개합니다. 리눅스 ISO 파일이나 오픈소스 프로그램 다운로드 페이지에서 SHA256 체크섬을 볼 수 있습니다. 파일을 받은 후 파일 해시 검증 도구로 해시를 생성하고, 사이트에 공개된 값과 비교합니다. 한 글자라도 다르면 파일이 변조되었거나 손상된 것입니다.
비밀번호 저장과 해시
웹사이트는 비밀번호를 해시로 변환해서 저장합니다. 원본 비밀번호를 그대로 저장하면 데이터베이스가 유출되었을 때 모든 비밀번호가 노출되기 때문입니다. 해시는 역변환이 불가능해서 해시값만 봐서는 원래 비밀번호를 알 수 없습니다. 로그인할 때는 입력한 비밀번호의 해시와 저장된 해시를 비교합니다.
해시는 데이터 보안과 무결성의 기본입니다. 파일 다운로드 후 검증하는 습관을 들이면 손상된 파일이나 악성코드를 피할 수 있습니다. 온라인 해시 생성기를 활용해서 파일과 텍스트의 해시값을 확인해보세요.