해시 생성기 (SHA-256)
텍스트를 입력하거나 붙여넣고 버튼 한 번으로 SHA-256, SHA-1, SHA-384, SHA-512 해시를 계산합니다. 결과는 소문자 또는 대문자 16진수로 표시되며, 각 해시마다 복사 버튼이 있습니다. 해싱은 브라우저의 Web Crypto API로 텍스트의 UTF-8 바이트에 대해 이루어지므로 아무것도 업로드되지 않습니다. 무료이며 회원가입이 필요 없습니다. 이 도구는 텍스트만 해싱하며 파일은 해싱하지 않습니다.
해시 생성기 사용 방법
- 1. 텍스트를 입력하세요. 텍스트 상자에 들어갈 수 있는 모든 텍스트를 입력할 수 있습니다.
- 2. 해시 생성을 누르세요. 네 가지 다이제스트가 함께 표시되며, 권장 알고리즘인 SHA-256이 강조됩니다.
- 3. 대소문자를 고르세요. 16진수 대문자를 켜면 모든 다이제스트가 대문자로 바뀝니다. 기본은 소문자(일반적인 관례)이며, 두 형식의 바이트 값은 같습니다.
- 4. 필요한 다이제스트를 복사하세요. 해당 다이제스트 옆의 버튼을 누르면 됩니다.
네 가지 알고리즘
SHA-1, SHA-256, SHA-384, SHA-512는 미국 정부의 보안 해시 표준인 FIPS 180-4에 정의되어 있습니다. 각 알고리즘은 입력을 고정 길이의 다이제스트로 바꿉니다. 출력에서 보이는 차이는 길이뿐입니다:
| 알고리즘 | 다이제스트 길이 | 16진수 문자 수 | 상태 |
|---|---|---|---|
| SHA-1 | 160비트 | 40 | 보안상 취약함: 첫 실용적인 충돌 사례가 2017년에 공개되었고, NIST는 2030년까지 단계적으로 폐기하라고 권고합니다. 레거시 체크섬 전용입니다. |
| SHA-256 | 256비트 | 64 | 무결성 검사와 서명에 쓰는 표준적인 선택 |
| SHA-384 | 384비트 | 96 | SHA-2 계열이며 SHA-512를 잘라낸 형태 |
| SHA-512 | 512비트 | 128 | SHA-2 계열이며, 64비트 프로세서에서는 SHA-256보다 빠른 경우가 많음 |
암호학적 해시는 되돌릴 수 없는 지문입니다. 같은 입력은 항상 같은 다이제스트를 만들고, 아주 작은 변화도 전혀 다른 다이제스트를 만들며, 다이제스트에서 원래 텍스트를 복원할 수 없습니다. Web Crypto API가 MD5를 구현하지 않으므로 MD5는 제공되지 않습니다.
실제 예시
텍스트
abc
SHA-256
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
SHA-1
a9993e364706816aba3e25717850c26c9cd0d89d
두 값은 표준 문서의 예시에 실린 공식 테스트 벡터이므로, 신뢰할 수 있는 출처와 대조해 도구를 확인할 수 있습니다. 이제 한 글자가 무엇을 바꾸는지 보겠습니다. The quick brown fox jumps over the lazy dog에서 "dog"를 "cog"로 바꾸면:
…dog
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
…cog
e4c4d8f3bf76b692de791a173e05321150f7a345b46484fe427f6acc7ecc81be
두 SHA-256 다이제스트는 알아볼 수 있는 부분이 거의 없습니다. 256비트 중 123비트가 다르며, 이는 서로 무관한 값에서 기대되는 절반에 가까운 수치입니다. 이것이 눈사태 효과(avalanche effect)이며, 해시로 파일이나 메시지가 바뀌었는지는 확인할 수 있어도 무엇이 바뀌었는지는 드러나지 않는 이유입니다.
해시가 일치하지 않는 이유
- 끝의 줄바꿈.
abc와 줄바꿈이 붙은abc는 다른 입력입니다. 줄바꿈을 붙인abc의 SHA-256은ba7816bf가 아니라edeaaff3으로 시작합니다.echo abc | sha256sum명령도 줄바꿈까지 해싱하므로, 줄바꿈을 빼려면printf또는echo -n을 사용하세요. - 대소문자와 공백.
Abc는abc와 다르게 해싱되며, 양 끝의 공백도 마찬가지입니다. - 인코딩. 이 도구는 입력한 내용의 UTF-8 바이트를 해싱합니다. 다른 곳에서 UTF-16이나 Latin-1로 해싱한 값은 영문자가 아닌 글자마다 다른 다이제스트가 나옵니다.
- 줄 끝 문자. Windows 파일에서 붙여넣은 텍스트에는 캐리지 리턴이 들어 있을 수 있으며, 텍스트 상자는 이를 정리해 버릴 수 있습니다.
이 도구가 적합하지 않은 용도
- 파일. 이 도구는 텍스트만 해싱합니다. 파일은 macOS나 Linux에서
shasum -a 256 file, Windows에서certutil -hashfile file SHA256명령을 사용하세요. - 비밀번호. SHA-256은 빠르게 계산되도록 설계되었기 때문에, 공격자가 비밀번호를 추측하는 데에도 도움이 됩니다. 비밀번호는 Argon2id, scrypt, bcrypt처럼 느리고 솔트를 사용하는 비밀번호 해싱 함수로 저장하세요.
- 키 기반 해시. HMAC나 솔트 옵션은 없습니다.
어떤 도구가 필요한가요?
해시가 아니라 텍스트 자체를 16진수로 보려면 16진수 변환기를 사용하세요. 무작위 식별자는 UUID 생성기, 무작위 비밀 값은 비밀번호 생성기를 사용하세요.
자주 묻는 질문
- 제 텍스트가 서버에 업로드되나요?
- 아니요. 모든 다이제스트는 브라우저 내장 Web Crypto API(crypto.subtle.digest)로 계산됩니다. 텍스트는 어디로도 전송되지 않으며, 페이지를 불러온 뒤 인터넷 연결을 끊어도 도구는 계속 작동합니다.
- 암호학적 해시란 무엇인가요?
- 어떤 길이의 입력이든 고정 길이의 다이제스트로 바꾸는 함수입니다. 같은 입력에는 항상 같은 결과가 나오고, 되돌릴 수 없으며, 입력의 모든 비트에 민감합니다. 해시는 파일 무결성 검사, 디지털 서명, 커밋 식별자 등에 쓰입니다.
- 어떤 해시 알고리즘을 써야 하나요?
- 거의 모든 경우에는 SHA-256을 쓰세요. SHA-384와 SHA-512는 같은 계열에서 더 긴 다이제스트를 제공합니다. SHA-1은 오래된 시스템이 요구할 때만 쓰고, 보안 목적으로는 쓰지 마세요.
- SHA-1을 안전하게 쓸 수 있나요?
- 보안 목적으로는 안전하지 않습니다. 2017년 SHAttered 공격은 같은 SHA-1 다이제스트를 가진 서로 다른 PDF 파일 두 개를 만들어 냈고, NIST는 2030년 말까지 단계적으로 폐기하라고 권고합니다. 공격자가 문제되지 않는 비보안 체크섬에는 여전히 쓸 수 있습니다.
- MD5 옵션이 없는 이유는 무엇인가요?
- Web Crypto API가 MD5를 구현하지 않으며, 이 도구는 브라우저가 제공하는 기능만 사용합니다. MD5는 오래전부터 보안 용도로 적합하지 않은 것으로 알려져 있습니다.
- 이 도구로 파일을 해싱할 수 있나요?
- 아니요. 이 도구는 텍스트만 받습니다. 파일은 위에서 설명한 운영체제의 명령줄 도구를 사용하세요.
- 제 SHA-256 값이 다른 사이트와 다른 이유는 무엇인가요?
- 거의 항상 입력이 다르기 때문입니다. 끝의 줄바꿈이나 공백 같은 보이지 않는 문자가 있거나, 텍스트 인코딩이 다른 경우입니다. 16진수 변환기로 정확한 바이트를 확인해 보세요.