사용 방법
- 텍스트를 입력하거나 붙여 넣거나, 또는 파일 해시로 파일을 고릅니다. 해시는 입력하는 동안 갱신됩니다.
- 일반 해시 대신 키가 있는 해시가 필요하면 비밀키로 HMAC 계산을 체크하고 키를 입력합니다.
- 필요한 알고리즘 옆의 복사를 누릅니다. 대문자로 보려면 대문자를 체크하세요.
예시
abc
→ SHA-256: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad같은 텍스트의 MD5는 900150983cd24fb0d6963f7d28e17f72입니다.
(빈 텍스트)
→ MD5: d41d8cd98f00b204e9800998ecf8427e빈 텍스트의 SHA-256은 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855입니다.
텍스트: The quick brown fox jumps over the lazy dog, HMAC 키: key
→ HMAC-SHA256: f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
계산 방식
텍스트는 UTF-8 바이트로 바꾼 뒤 해시합니다. SHA-1, SHA-256, SHA-384, SHA-512는 브라우저에 내장된 Web Crypto API로 계산합니다. MD5는 Web Crypto에 없어서 오픈소스 hash-wasm 라이브러리를 씁니다.
결과는 소문자 16진수로 적습니다. 바이트마다 두 글자라서 MD5는 32자, SHA-1은 40자, SHA-256은 64자, SHA-384는 96자, SHA-512는 128자입니다.
키를 입력하면 RFC 2104에 따라 같은 해시 함수로 HMAC을 계산합니다. 파일을 고르면 파일의 원본 바이트 전체를 해시합니다.
출처
- NIST FIPS 180-4: 보안 해시 표준 (SHA-1, SHA-2)
- RFC 2104: HMAC: 메시지 인증을 위한 키 해싱
- hash-wasm: MD5에 쓰는 오픈소스 라이브러리
자주 묻는 질문
- 어떤 알고리즘을 써야 하나요?
- 데이터가 바뀌지 않았는지 확인하려면 SHA-256 이상을 쓰세요. MD5와 SHA-1은 같은 해시를 가진 서로 다른 입력을 일부러 만들 수 있어 보안 용도로는 깨진 알고리즘입니다. 이미 MD5나 SHA-1로 공개된 체크섬을 대조할 때만 쓰세요.
- 이 해시로 비밀번호를 저장해도 되나요?
- 안 됩니다. SHA-256 같은 빠른 해시는 무차별 대입으로 쉽게 뚫립니다. 비밀번호는 Argon2, bcrypt, scrypt 같은 느린 비밀번호 해시 함수와 사용자별 솔트로 저장해야 합니다.
- HMAC이란 무엇인가요?
- 해시에 비밀키를 섞어, 키를 가진 사람만 값을 만들거나 확인할 수 있게 하는 방식입니다. 메시지나 API 요청에 서명할 때 쓰며, 웹훅 서명이 그 예입니다.
- 다른 도구와 해시가 다르게 나오는 이유는 무엇인가요?
- 가장 흔한 이유는 텍스트 인코딩이 다른 경우(이 도구는 UTF-8), 끝의 줄바꿈이나 공백, 또는 윈도우식 줄바꿈(CRLF)과 유닉스식 줄바꿈(LF)의 차이입니다. 파일을 해시하면 이런 차이를 피할 수 있습니다.
- 텍스트나 파일이 업로드되나요?
- 아니요. 해시는 브라우저 안에서만 계산됩니다. 200MB까지의 파일을 해시할 수 있고, 파일은 서버로 전송되지 않습니다.