해시란 무엇인가요
해시(hash)는 어떤 길이의 데이터든 정해진 길이의 문자열로 요약하는 계산입니다. 예를 들어 SHA-256은 입력이 한 글자든 10GB짜리 동영상 파일이든 항상 64자리 16진수 문자열을 내놓습니다. 같은 입력은 언제나 같은 해시값을 내고, 입력이 한 비트만 달라져도 해시값은 전혀 다른 모습이 됩니다. 이 성질 덕분에 해시는 “두 데이터가 정말 같은가”를 빠르게 확인하는 용도로 널리 쓰입니다.
사용 방법
텍스트를 붙여넣거나 파일을 끌어다 놓으면 선택한 알고리즘의 해시값이 계산됩니다. 여러 알고리즘을 동시에 켤 수 있고, 결과는 16진수(소문자·대문자) 또는 Base64로 볼 수 있습니다. 큰 파일은 한 번에 메모리에 올리지 않고 잘게 나눠 읽으면서 계산하므로, 계산 중 진행률이 표시되고 언제든 취소할 수 있습니다. 배포처에서 받은 해시값이 있다면 비교 칸에 붙여넣어 일치 여부를 확인할 수 있습니다.
파일 무결성을 확인하는 법
소프트웨어나 이미지 파일을 내려받을 때 배포 페이지에 “SHA-256: 3a7bd3e2…” 같은 해시값이 함께 적혀 있는 경우가 많습니다. 받은 파일을 이 도구에 올려 같은 알고리즘으로 계산한 값이 그 문자열과 일치하면, 파일이 전송 중 깨지거나 다른 파일로 바뀌지 않았다는 뜻입니다. 반대로 값이 다르면 다운로드를 다시 받아야 합니다. 다만 이 확인은 파일이 악의적으로 조작되지 않았음을 보장하지는 않으며, 배포자가 공개한 해시값 자체가 조작되지 않았다는 전제 위에서 이뤄집니다.
MD5와 SHA-1: 여전히 쓰이지만 안전하지는 않다
MD5(128비트, 32자리 16진수)와 SHA-1(160비트, 40자리 16진수)은 계산 속도가 빠르고 오랫동안 쓰여 왔기 때문에 지금도 체크섬 확인에 자주 등장합니다. 하지만 둘 다 서로 다른 입력으로 같은 해시값을 만드는 “충돌”이 발견되어 있습니다. MD5는 2004년에, SHA-1은 2017년 “SHAttered” 연구로 실제 충돌 사례가 공개됐습니다. 그래서 전자서명, 인증서처럼 누군가 의도적으로 값을 조작할 수 있는 보안 상황에는 SHA-256·SHA-384·SHA-512처럼 더 긴 해시를 씁니다. 비밀번호 저장은 예외입니다. MD5·SHA-1·SHA-2·SHA-3 같은 범용 해시는 계산이 너무 빨라 비밀번호 저장에 알맞지 않으므로, Argon2id·scrypt·bcrypt처럼 일부러 느리게 만든 비밀번호 전용 해시 함수를 써야 합니다. 단순히 전송 중 손상 여부만 확인하는 체크섬이라면 MD5·SHA-1도 여전히 실용적입니다.
개인정보: 브라우저 안에서만 계산됩니다
이 도구는 WebAssembly로 만든 해시 라이브러리를 브라우저 안에서 직접 실행합니다. 텍스트든 파일이든 이 페이지 밖으로 전송되지 않고, 서버에 저장되지도 않습니다. 인터넷 연결이 끊긴 상태에서도(페이지를 한 번 불러온 뒤라면) 계속 쓸 수 있습니다.