해시 계산기
글이나 파일의 MD5·SHA-1·SHA-256·SHA-512·SHA-3·CRC32 해시를 한 번에 계산합니다. 내려받은 파일의 체크섬(SHA-256 등)을 붙여 넣으면 일치 여부를 바로 알려 줍니다. 입력한 글과 파일은 서버로 전송되지 않고 브라우저 안에서만 처리합니다.
글을 입력하면 해시가 바로 표시됩니다.
파일 해시 · 체크섬 확인
위에서 고른 알고리즘과 "비교할 해시"를 그대로 씁니다.
해시란?
해시(hash)는 아무 길이의 데이터를 정해진 길이의 값으로 바꾸는 계산입니다. 같은 입력은 언제나 같은 결과를 내고, 한 글자만 달라져도 결과가 완전히 달라지며, 결과로부터 원래 데이터를 되돌릴 수는 없습니다(단방향). 그래서 파일이 전송 중에 바뀌거나 손상되지 않았는지 확인하는 체크섬, 두 파일이 같은지 비교, 데이터의 지문(fingerprint)을 남기는 용도로 씁니다. 암호화와 달리 열쇠가 없고 되돌릴 수도 없습니다.
예를 들어 hello의 SHA-256은 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824이고, Hello(대문자 H)는 전혀 다른
값이 나옵니다. 이 도구는 글을 UTF-8 바이트로 바꿔 계산하므로 Python의 hashlib.sha256(s.encode()).hexdigest(), 리눅스 sha256sum과 결과가 같습니다.
알고리즘 비교: 무엇을 쓸까
| 알고리즘 | 길이 | 안전성 | 주로 쓰는 곳 |
|---|---|---|---|
| CRC32 | 32비트 (8자) | 보안 아님 | ZIP·PNG 내부 오류 검출, 간단한 전송 오류 확인 |
| MD5 | 128비트 (32자) | 충돌 발견(2004) | 오래된 체크섬, 파일 중복 찾기. 보안 용도로는 쓰지 않음 |
| SHA-1 | 160비트 (40자) | 충돌 발견(2017) | Git 커밋 ID(이전 방식), 오래된 인증서. 새로 쓰지 않음 |
| SHA-256 | 256비트 (64자) | 안전 | 기본 선택. 내려받기 체크섬, TLS 인증서, 비트코인, 코드 서명 |
| SHA-224 · SHA-384 | 224·384비트 | 안전 | SHA-256·SHA-512의 짧은 변형. 특정 규격이 요구할 때 |
| SHA-512 | 512비트 (128자) | 안전 | 64비트 환경에서 SHA-256보다 빠른 경우가 많음. 리눅스 배포판 ISO 체크섬 |
| SHA3-256 · SHA3-512 | 256·512비트 | 안전 | SHA-2와 구조가 다른 최신 표준(Keccak). SHA-2가 깨질 때의 대안, 이더리움 계열 |
"SHA-1024"라는 표준 알고리즘은 없습니다. SHA-2 계열은 512비트가 가장 길고, 더 긴 출력이 필요하면 SHA3-512나 SHAKE 같은 가변 길이 함수를 씁니다. MD5·SHA-1은 서로 다른 두 파일이 같은 해시를 갖게 만들 수 있다는 것이 증명됐으므로, 변조 여부를 따지는 보안 용도에는 SHA-256 이상을 쓰세요. 단순히 전송 중 손상만 확인하는 데는 MD5도 여전히 충분합니다.
내려받은 파일 검증하는 법
공식 사이트는 보통 설치 파일 옆에 SHA-256 체크섬을 적어 둡니다. 내려받은 파일을 위의 파일 칸에 넣고, 그 체크섬을 "비교할 해시"에 붙여 넣으면 일치 여부가 표시됩니다.
sha256sum 출력처럼 해시 뒤에 파일 이름이 붙어 있거나 sha256: 접두어가 있어도 됩니다. 명령줄로 직접 확인하려면:
| 환경 | 명령 |
|---|---|
| Windows (PowerShell) | Get-FileHash 파일명 -Algorithm SHA256 |
| Windows (명령 프롬프트) | certutil -hashfile 파일명 SHA256 |
| macOS | shasum -a 256 파일명 |
| Linux | sha256sum 파일명 (MD5는 md5sum) |
| Python | hashlib.sha256(open("파일명","rb").read()).hexdigest() |
체크섬이 같으면 내려받는 동안 바뀌지 않은 것입니다. 단, 체크섬을 적어 둔 페이지 자체가 변조됐을 가능성까지 막으려면 GPG 서명을 함께 확인해야 합니다.
비밀번호 저장에 쓰면 안 되는 이유
MD5·SHA-256은 빠르게 계산되도록 만든 함수라, 유출된 해시로부터 흔한 비밀번호를 초당 수십억 번 대입해 찾아낼 수 있습니다. 비밀번호는 일부러 느리게 설계된 bcrypt·scrypt·Argon2에 무작위 salt를 더해 저장해야 합니다. 이 도구는 파일 검증과 데이터 비교용이며, 해시 하나로 비밀번호를 "암호화"했다고 생각하면 안 됩니다. 여기에 입력한 내용은 서버로 전송되지 않지만, 실제 비밀번호를 넣어 볼 이유도 없습니다.
자주 묻는 질문
입력한 글이나 파일이 서버로 전송되나요?
아니요. 해시 계산은 전부 브라우저 안에서(WebAssembly) 이뤄지고, 글과 파일은 서버로 보내거나 저장하지 않습니다. 수 GB 파일도 메모리에 다 올리지 않고 4MB씩 읽어 계산합니다.
같은 글인데 다른 사이트와 결과가 달라요.
끝에 붙은 줄바꿈이나 공백, 문자 인코딩 차이입니다. echo hello | sha256sum은 줄바꿈이 포함된 hello\n의 해시라 이 도구의 hello와 다릅니다
(echo -n을 쓰세요). 한글은 UTF-8 기준이며 EUC-KR로 저장된 파일은 바이트가 달라 결과도 다릅니다.
비교할 해시의 알고리즘을 고르지 않았는데 비교돼요.
붙여 넣은 해시의 길이(32자 MD5, 40자 SHA-1, 64자 SHA-256·SHA3-256, 128자 SHA-512·SHA3-512 …)로 알고리즘을 짐작해 자동으로 함께 계산합니다. 대소문자는 구분하지 않습니다.
HMAC이나 비밀번호 해시(bcrypt)도 되나요?
아니요. 이 도구는 열쇠 없는 해시만 계산합니다. 결과를 Base64로 바꿔야 한다면 Base64 인코더에 16진수 대신 원문을 넣지 말고, JSON 응답의 해시 값을 확인할 때는 JSON 포맷터로 정리해 보세요.
출처
- SHA-1·SHA-2(SHA-224/256/384/512) 규격: NIST FIPS 180-4
- SHA-3 규격: NIST FIPS 202
- MD5 규격: RFC 1321
- SHA-1 충돌 공격(SHAttered, 2017): Google Security Blog
- 브라우저 해시 라이브러리: hash-wasm (GitHub, MIT)
이 도구가 도움이 됐다면 알려 주세요
페이지 링크만 보냅니다. 입력한 값이나 파일은 담기지 않습니다.