MD5/SHA 해시 생성기

MD5, SHA 등 다이제스트 계산

입력
출력

도구 설명

MD5/SHA 해시 생성기 정보

해시 생성기는 텍스트를 MD5, SHA-1, SHA-256, SHA-384, SHA-512 같은 고정 길이 다이제스트로 변환합니다.

이 도구는 브라우저에서 로컬로 digest를 계산하고 uppercase 출력을 지원하며 checksum, 비교, signature 예제, 디버깅에 유용합니다.

MD5 & SHA Hash Generator 사용 방법

  1. hash를 계산할 텍스트를 입력 영역에 붙여 넣습니다.
  2. 대상 시스템에 맞춰 MD5, SHA-1, SHA-256, SHA-384, SHA-512를 선택합니다.
  3. 예상 체크섬이 대문자 16진수일 때만 대문자 옵션을 켭니다.
  4. 출력을 복사해 API, 빌드 과정, 문서의 예상 다이제스트와 비교합니다.

사용 사례

  • 짧은 텍스트 페이로드가 문서의 MD5 또는 SHA 체크섬과 맞는지 확인합니다.
  • API 서명 예제, 테스트, 문서용 예제 다이제스트를 만듭니다.
  • 같은 algorithm으로 두 텍스트를 hash해 빠르게 비교합니다.
  • 대문자와 소문자 때문에 생기는 체크섬 불일치를 디버깅합니다.

Hash 알고리즘과 흔한 실수

Hash는 단방향입니다. 입력에서 digest를 계산할 수 있지만 digest를 원문으로 복호화할 수 없습니다. 알고리즘과 입력 byte, 출력 형식이 모두 중요합니다.

  • MD5: 레거시 체크섬에 흔하지만 보안이 중요한 충돌 저항성 용도에는 적합하지 않습니다.
  • SHA-1: 보안 용도로는 오래되었으므로 오래된 시스템 요구 때만 사용합니다.
  • SHA-256: 새 예제, 무결성 검사, 많은 서명 워크플로에서 일반적인 선택입니다.
  • 공백, 줄바꿈, 인코딩, 보이지 않는 문자가 hash를 바꿉니다.

Hash 계산기 자주 묻는 질문

Hash는 encryption과 같은가요?
아니요. encryption은 key로 되돌릴 수 있지만 hash는 단방향이며 비교와 무결성 확인에 쓰입니다.
MD5 hash에서 원문을 복구할 수 있나요?
아니요. 해시 다이제스트에는 원래 입력을 복원할 정보가 충분하지 않습니다.
왜 다른 도구와 결과가 다른가요?
추가 공백, 줄 바꿈 문자, 문자 인코딩, 대문자 출력, 알고리즘 차이를 확인하세요.
MD5와 SHA-256 중 무엇을 써야 하나요?
대상 시스템이 요구하는 알고리즘을 쓰세요. 새 예제라면 보통 SHA-256이 더 안전한 기본값입니다.
입력이 업로드되나요?
아니요. Hash 계산은 브라우저에서 로컬로 실행되며 wetool.site로 업로드되지 않습니다.

해시 생성기와 비밀번호 해싱

이 도구는 원시 MD5/SHA 다이제스트를 계산합니다. 실제 비밀번호 저장에는 백엔드에서 bcrypt, scrypt, Argon2 같은 느린 솔트가 적용된 알고리즘이 필요합니다.

Hash 비교 전 입력 정규화

newline, space, encoding 하나만 달라도 MD5/SHA 결과는 완전히 달라집니다. hash가 맞지 않으면 먼저 바이트가 같은지 확인합니다.

  • 텍스트 복사 시 끝의 줄바꿈을 확인합니다. Linux echo는 echo -n이 아니면 newline을 추가합니다.
  • 입력이 UTF-8, UTF-16, 원시 바이너리 중 무엇인지 확인합니다. 텍스트 해시와 파일 바이트 해시는 다릅니다.
  • 다운로드한 파일은 파일 이름, URL, 브라우저 미리보기 텍스트가 아니라 원본 파일 내용를 hash합니다.

Hash, HMAC, 비밀번호 저장 경계

Hash는 integrity를 확인할 수 있지만 message 작성자를 증명하지 않고 비밀번호 저장에도 충분하지 않습니다.

  • 단순 SHA-256은 입력이 바뀌었는지만 보여줍니다. 내용과 해시를 모두 바꿀 수 있는 공격자는 우회할 수 있습니다.
  • 키 기반 무결성 검증에는 시크릿을 이어 붙여 해시하지 말고 HMAC-SHA256을 사용합니다.
  • 비밀번호는 원시 MD5/SHA가 아니라 Argon2, bcrypt, scrypt 같은 솔트를 사용하는 느린 알고리즘으로 저장해야 합니다.