Σ

SHA 해시 fips 180

SHA-1, SHA-256, SHA-384, SHA-512 해시 값을 브라우저에서 한 번에 계산합니다.

case
INPUTmessage
0 lines 0 chars
1
OUTPUTdigests
도구 설명

이 도구가 하는 일

SHA는 미국 표준기술연구소(NIST)가 표준화한 해시 함수 계열입니다. 이 도구는 SHA-1(160비트), SHA-256(256비트), SHA-384, SHA-512를 지원하며 입력 하나에 대해 여러 알고리즘의 결과를 동시에 보여줍니다.

SHA-1은 40자리 16진수를 출력하지만 2017년에 실제 충돌 사례가 공개되면서 보안 용도로는 권장되지 않습니다. Git이 오랫동안 SHA-1을 사용해 왔기 때문에 개발 현장에서는 여전히 자주 마주치게 됩니다. SHA-256은 64자리 16진수를 출력하며 현재 가장 널리 쓰이는 선택지입니다. TLS 인증서, 블록체인, 파일 무결성 검증, API 서명 등 대부분의 표준에서 기본값으로 채택하고 있습니다. SHA-384와 SHA-512는 더 긴 출력을 내며, 64비트 환경에서는 SHA-512가 SHA-256보다 오히려 빠른 경우도 있습니다.

계산은 crypto-js 라이브러리를 사용해 브라우저에서 수행되며 입력값은 서버로 전송되지 않습니다.

언제 사용하나요

파일이나 릴리스 아카이브의 무결성을 배포처가 공개한 체크섬과 비교할 때, API 요청 서명 값을 직접 만들어 검증할 때, 데이터 변경 여부를 판단하기 위한 지문을 만들 때, 문서에 나온 해시 예시가 실제로 맞는지 확인할 때 사용합니다.

입력과 출력 예시

입력 hello
출력 SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

SHA-1은 항상 40자리 16진수입니다.

입력 hello
출력 SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

같은 입력이라도 알고리즘이 다르면 길이와 값이 전혀 다릅니다. SHA-256은 64자리입니다.

주의사항

SHA 계열은 빠르게 계산되도록 설계되었기 때문에 비밀번호 저장에는 적합하지 않습니다. 공격자도 그만큼 빠르게 대입할 수 있기 때문입니다. 비밀번호에는 bcrypt, scrypt, Argon2를 사용하십시오. 메시지 인증이 목적이라면 해시만 쓰지 말고 비밀 키를 함께 사용하는 HMAC을 사용해야 합니다. 새로 설계하는 시스템에서 SHA-1은 피하고 SHA-256 이상을 선택하십시오. 같은 문자열이라도 줄바꿈이나 공백이 하나만 달라도 결과가 전혀 달라지므로, 값이 맞지 않으면 입력의 미세한 차이를 먼저 확인해 보십시오.

자주 묻는 질문

SHA-256과 SHA-512 중 무엇을 써야 하나요?

대부분의 경우 SHA-256으로 충분하며 호환성도 가장 좋습니다. 더 긴 출력이 필요하거나 64비트 환경에서 성능이 중요한 경우 SHA-512를 고려할 수 있습니다.

체크섬이 배포처 값과 다릅니다.

다운로드가 중간에 손상되었거나 파일이 다른 버전일 수 있습니다. 또한 텍스트 파일은 줄바꿈 형식(CRLF와 LF) 차이만으로도 해시가 달라집니다.

해시로 비밀번호를 저장해도 되나요?

권장하지 않습니다. SHA는 빠른 계산을 목표로 설계되어 대입 공격에 유리합니다. 비밀번호 전용으로 설계된 bcrypt, scrypt, Argon2를 사용하십시오.

Copied