본문으로 건너뛰기

해시 생성기 (SHA-256)

텍스트를 입력하거나 붙여넣고 버튼 한 번으로 SHA-256, SHA-1, SHA-384, SHA-512 해시를 계산합니다. 결과는 소문자 또는 대문자 16진수로 표시되며, 각 해시마다 복사 버튼이 있습니다. 해싱은 브라우저의 Web Crypto API로 텍스트의 UTF-8 바이트에 대해 이루어지므로 아무것도 업로드되지 않습니다. 무료이며 회원가입이 필요 없습니다. 이 도구는 텍스트만 해싱하며 파일은 해싱하지 않습니다.

해시 생성기 사용 방법

  1. 1. 텍스트를 입력하세요. 텍스트 상자에 들어갈 수 있는 모든 텍스트를 입력할 수 있습니다.
  2. 2. 해시 생성을 누르세요. 네 가지 다이제스트가 함께 표시되며, 권장 알고리즘인 SHA-256이 강조됩니다.
  3. 3. 대소문자를 고르세요. 16진수 대문자를 켜면 모든 다이제스트가 대문자로 바뀝니다. 기본은 소문자(일반적인 관례)이며, 두 형식의 바이트 값은 같습니다.
  4. 4. 필요한 다이제스트를 복사하세요. 해당 다이제스트 옆의 버튼을 누르면 됩니다.

네 가지 알고리즘

SHA-1, SHA-256, SHA-384, SHA-512는 미국 정부의 보안 해시 표준인 FIPS 180-4에 정의되어 있습니다. 각 알고리즘은 입력을 고정 길이의 다이제스트로 바꿉니다. 출력에서 보이는 차이는 길이뿐입니다:

알고리즘다이제스트 길이16진수 문자 수상태
SHA-1160비트40보안상 취약함: 첫 실용적인 충돌 사례가 2017년에 공개되었고, NIST는 2030년까지 단계적으로 폐기하라고 권고합니다. 레거시 체크섬 전용입니다.
SHA-256256비트64무결성 검사와 서명에 쓰는 표준적인 선택
SHA-384384비트96SHA-2 계열이며 SHA-512를 잘라낸 형태
SHA-512512비트128SHA-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진수 변환기로 정확한 바이트를 확인해 보세요.

관련 도구

데이터·마크업·코드의 다른 도구