해시 함수는 임의 길이의 입력을 고정 길이의 값으로 바꾸는 일방향 함수입니다. 같은 입력은 항상 같은 해시를 만들지만, 해시에서 원래 입력을 되돌릴 수는 없습니다. 이런 특성 덕분에 해시는 파일 무결성 검증, 데이터 변경 감지, 디지털 서명, 비밀번호 저장(솔트와 함께) 등에 널리 쓰입니다. 이 도구는 텍스트를 입력하면 SHA-1, SHA-256, SHA-384, SHA-512 네 가지 해시를 한 번에 16진수로 계산합니다.
각 알고리즘은 출력 길이가 다릅니다. SHA-1은 160비트(40자리 16진수), SHA-256은 256비트(64자리), SHA-384는 384비트(96자리), SHA-512는 512비트(128자리)를 만듭니다. 출력이 길수록 충돌(서로 다른 입력이 같은 해시를 내는 경우) 가능성이 낮아 더 안전합니다. 같은 알고리즘이라면 입력이 1바이트만 달라져도 결과가 전혀 다르게 나오는데, 이를 쇄도 효과(avalanche effect)라고 합니다.
계산은 브라우저에 내장된 표준 Web Crypto API(crypto.subtle.digest)로 수행되므로 별도 라이브러리 없이 빠르고, 입력한 텍스트가 서버로 전송되지 않습니다. 비밀번호나 토큰처럼 민감한 문자열의 해시를 확인할 때도 안심하고 사용할 수 있습니다. 결과는 모노스페이스로 표시되고 각 알고리즘별 복사 버튼을 제공합니다.
사용 방법
- 1
텍스트 입력
해시를 만들 문자열을 입력란에 붙여 넣습니다. 한글, 이모지 등 유니코드도 UTF-8로 정확히 처리됩니다.
- 2
해시 생성
'해시 생성' 버튼을 누르면 네 가지 SHA 알고리즘의 해시가 동시에 계산됩니다.
- 3
결과 확인
SHA-1, SHA-256, SHA-384, SHA-512 결과가 16진수 문자열로 각각 표시됩니다.
- 4
복사
필요한 알고리즘 옆의 복사 버튼으로 해시 값을 클립보드에 담습니다.
이럴 때 유용해요
다운로드 파일 무결성 확인
배포처가 공개한 SHA-256 체크섬과 직접 계산한 해시를 비교해 파일이 변조·손상되지 않았는지 검증합니다.
데이터 변경 감지
이전 데이터의 해시를 저장해 두고 새 값의 해시와 비교하면, 내용이 바뀌었는지 전체를 비교하지 않고도 알 수 있습니다.
캐시 키·ETag 생성 점검
콘텐츠를 해시해 캐시 키나 ETag로 쓰는 로직을 만들 때, 예상한 해시 값이 나오는지 빠르게 확인합니다.
API 서명 디버깅
HMAC이나 요청 서명을 다룰 때 기준이 되는 SHA 해시 값을 손으로 계산해 서버 구현과 대조합니다.
활용 팁
- 파일 무결성 확인에는 보통 SHA-256을 가장 많이 사용합니다.
- 비밀번호를 저장할 때는 단순 SHA 해시가 아니라 솔트(salt)와 bcrypt·scrypt·Argon2 같은 전용 알고리즘을 써야 안전합니다. SHA는 너무 빨라 무차별 대입에 취약합니다.
- SHA-1은 충돌 공격이 실증되어 보안 용도로는 권장되지 않습니다. 호환성 확인 외에는 SHA-256 이상을 쓰세요.
- 같은 입력은 항상 같은 해시를 만들므로, 두 데이터가 동일한지 비교할 때 해시를 활용할 수 있습니다.
- 16진수 출력 길이로 알고리즘을 가늠할 수 있습니다. 64자리면 SHA-256, 128자리면 SHA-512입니다.
- 입력 끝의 보이지 않는 개행 문자나 공백 하나만 달라도 해시가 완전히 바뀝니다. 다른 도구와 결과가 다르면 입력을 먼저 의심하세요.
자주 묻는 질문
MD5도 만들 수 있나요?
아니요. 브라우저 표준 Web Crypto API는 보안상 권장되지 않는 MD5를 제공하지 않습니다. 이 도구는 SHA 계열만 지원하며, 보안 용도라면 SHA-256 이상을 권장합니다.
입력한 텍스트가 서버로 전송되나요?
아니요. 모든 해시 계산은 브라우저 내부의 Web Crypto API로 이루어지며 입력값이 외부로 전송되지 않습니다.
해시에서 원래 텍스트를 복원할 수 있나요?
없습니다. 해시는 일방향 함수라 결과에서 입력을 역산할 수 없습니다. 다만 짧거나 흔한 값은 사전 공격(rainbow table)으로 추측될 수 있습니다.
한글도 정확히 해시되나요?
네. 입력을 TextEncoder로 UTF-8 바이트로 변환한 뒤 해시하므로 한글, 이모지 등 모든 문자가 일관되게 처리됩니다.
왜 같은 텍스트인데 다른 사이트와 해시가 다르나요?
줄바꿈이나 공백, 인코딩 차이 때문일 수 있습니다. 입력 끝의 보이지 않는 개행 문자나 인코딩(UTF-8 여부)을 확인해 보세요.
SHA-256과 SHA-512 중 무엇을 써야 하나요?
대부분의 용도에는 SHA-256으로 충분합니다. SHA-512는 출력이 더 길어 이론적 안전 여유가 크고 64비트 환경에서 빠를 수 있지만, 일반적인 무결성 검증에는 SHA-256이 표준처럼 쓰입니다.
해시 길이는 입력 길이에 따라 달라지나요?
아니요. 해시는 입력이 한 글자든 수 MB든 항상 같은 길이의 출력을 냅니다. SHA-256은 언제나 64자리 16진수입니다.
파일도 해시할 수 있나요?
이 도구는 텍스트 입력을 해시합니다. 파일 자체의 해시가 필요하면 파일을 텍스트로 다룰 수 없는 경우가 많으므로, 운영체제의 명령행 도구(shasum 등)를 함께 사용하는 것이 정확합니다.