빈 문자열과 "abc"의 값은 MD5 표준(RFC 1321)과 SHA 표준(NIST FIPS 180-4) 예시 값과 같습니다. 이 도구의 계산은 이 공개 값들로 검증했습니다.
알고리즘 비교
알고리즘
길이
용도
MD5
128비트 (16진수 32자)
단순 체크섬만. 충돌 공격 가능
SHA-1
160비트 (40자)
git 객체 이름 등. 2017년 충돌 사례 공개로 보안 용도 폐기
SHA-256
256비트 (64자)
파일 무결성, 전자서명, 블록체인 등 일반적인 선택
SHA-384
384비트 (96자)
TLS 인증서, SRI 등
SHA-512
512비트 (128자)
64비트 환경에서 빠른 긴 해시
자주 묻는 질문
MD5나 SHA-1은 안전하지 않다던데 써도 되나요?
두 알고리즘은 서로 다른 입력으로 같은 해시를 만드는 충돌 공격이 알려져 있어 전자서명·인증서·무결성 보증 같은 보안 용도에는 쓰면 안 됩니다. 다만 실수로 파일이 깨졌는지 확인하는 체크섬이나 캐시 키처럼 공격을 가정하지 않는 곳에서는 여전히 쓰입니다. 새로 만드는 시스템이라면 SHA-256 이상을 권합니다.
같은 문자열인데 다른 도구와 해시 값이 달라요.
대부분 입력 바이트가 다르기 때문입니다. 이 도구는 텍스트를 UTF-8로 바꿔 계산하므로 EUC-KR로 계산한 값과 다릅니다. 또 터미널의 echo 명령은 끝에 줄바꿈을 붙여 "abc\n"의 해시가 나옵니다(echo -n을 쓰면 같아짐). 앞뒤 공백이나 Windows 줄바꿈(CRLF)도 확인해 보세요.
비밀번호를 SHA-256으로 해시해 저장하면 안전한가요?
아니요. SHA-256은 매우 빨라서 유출되면 초당 수십억 번 대입해 볼 수 있습니다. 비밀번호 저장에는 bcrypt, scrypt, Argon2처럼 일부러 느리게 만든 알고리즘과 사용자별 솔트를 써야 합니다.
다운로드한 파일의 체크섬은 어떻게 확인하나요?
위 "파일" 탭에서 파일을 고르고, 배포처가 공개한 해시 값을 "기대 해시"에 붙여 넣으면 일치 여부를 바로 알려 줍니다. 명령줄에서는 Windows에서 certutil -hashfile 파일명 SHA256, macOS·리눅스에서 shasum -a 256 파일명으로 같은 값을 얻을 수 있습니다.
해시 값으로 원래 내용을 되돌릴 수 있나요?
해시는 한 방향 함수라 되돌리는 방법이 없습니다. 다만 "123456"처럼 흔한 짧은 문자열은 미리 계산해 둔 표로 찾아낼 수 있으니, 해시했다고 해서 짧은 비밀 값이 안전해지는 것은 아닙니다.