해시 생성기 SHA-256 · SHA-1 · MD5 · CRC32 (텍스트·파일)

텍스트를 입력하거나 파일을 고르면 여섯 가지 해시를 한꺼번에 보여 줍니다. 배포 사이트가 적어 둔 SHA-256과 비교해 파일이 손상·변조되지 않았는지 확인하는 용도에 맞습니다.

해시 생성기 SHA-256 · SHA-1 · MD5 · CRC32 (텍스트·파일)모두의계산기

해시는 암호화가 아니다

해시 함수는 어떤 길이의 입력이든 고정 길이의 값(SHA-256이면 32바이트)으로 바꿉니다. 입력이 한 글자만 달라도 결과가 완전히 달라지고, 결과에서 입력을 되돌릴 수는 없습니다. 키도 없습니다. 암호화는 키가 있으면 되돌릴 수 있다는 점에서 해시와 근본적으로 다릅니다. 그래서 해시는 "이 파일이 원본과 같은가"를 확인하거나 비밀번호를 원문 없이 저장하는 데 쓰고, 내용을 숨기는 용도로는 쓰지 않습니다. 이 페이지의 계산은 브라우저 안에서 끝나며 파일이 업로드되지 않습니다.

어느 것을 써야 하나

SHA-256이 기본 선택입니다. 소프트웨어 배포 사이트의 체크섬, Git 신버전, TLS 인증서가 모두 씁니다. SHA-512는 64비트 CPU에서 오히려 빠르고 더 긴 출력을 줍니다. SHA-1은 2017년에 충돌(다른 두 입력이 같은 해시)이 실제로 만들어져 보안 용도로는 폐기되었고, 옛 Git 저장소나 레거시 시스템 호환용으로만 남아 있습니다. MD5는 충돌을 몇 초 만에 만들 수 있어 보안 용도로는 쓰면 안 되지만, 전송 중 파일이 깨졌는지 확인하는 정도로는 여전히 흔히 쓰입니다. CRC32는 해시가 아니라 오류 검출 코드로, ZIP·PNG 내부에서 손상 여부를 빠르게 확인하는 용도이며 4바이트라 의도적 충돌이 쉽습니다.

체크섬으로 다운로드 확인하기

설치 파일을 내려받았을 때 배포 사이트에 적힌 SHA-256과 직접 계산한 값이 같으면 파일이 전송 중 손상되지 않았고, 중간에서 바꿔치기당하지도 않았다는 뜻입니다(단, 체크섬이 적힌 페이지 자체가 HTTPS로 안전하게 전달되었을 때). "비교할 해시" 칸에 붙여넣으면 여섯 값 중 어느 것과 맞는지 표시합니다. 대소문자는 무시하고 비교하며, 파일 크기가 수백 MB면 계산에 몇 초 걸립니다.

텍스트 해시가 다른 도구와 다를 때

해시는 바이트를 입력으로 받습니다. 같은 "안녕"이라도 UTF-8(6바이트)과 EUC-KR(4바이트)은 다른 바이트열이라 해시가 다릅니다. 이 도구는 UTF-8을 씁니다. 또 터미널에서 echo "abc" | sha256sum을 치면 echo가 끝에 줄바꿈을 붙이므로 "abc" 세 글자의 해시와 다릅니다(echo -n을 써야 같음). 끝에 공백이나 줄바꿈이 붙어 있지 않은지 확인하는 것이 첫 번째 점검입니다.

자주 묻는 질문

비밀번호 저장용 해시로 써도 되나요?

안 됩니다. SHA-256은 너무 빨라서 대입 공격에 약합니다. 비밀번호는 bcrypt, scrypt, Argon2처럼 일부러 느리게 만든 함수를 salt와 함께 써야 합니다.

파일이 서버로 올라가나요?

아닙니다. 브라우저의 File API로 메모리에 읽어 계산만 하고, 페이지를 닫으면 사라집니다. 네트워크 탭을 열어 확인할 수 있습니다.

MD5는 왜 직접 구현했나요?

WebCrypto는 보안상 폐기된 MD5를 제공하지 않습니다. 레거시 체크섬 비교용으로 표준 알고리즘(RFC 1321)을 자바스크립트로 구현해 넣었습니다.

큰 파일은 얼마나 걸리나요?

메모리에 한 번에 읽기 때문에 1~2GB 정도가 실용적 한계입니다. 100MB 파일은 보통 1초 안팎입니다.

함께 보기