MD5와 SHA-1은 비밀번호 보관에 안전하지 않습니다. 비밀번호는 bcrypt, scrypt, Argon2로 저장하세요.
텍스트나 크기 제한 없는 파일의 MD5, SHA-1, SHA-256, SHA-512, SHA-3, BLAKE3, CRC32 해시를 한 번에 계산하는 해시 생성기입니다. 16진수나 Base64로 출력하고, 공개된 체크섬을 붙여 넣어 다운로드 파일을 검증하거나 키를 넣어 HMAC 서명을 만들 수 있습니다. 계산은 브라우저의 WebAssembly로 하므로 파일을 업로드하지 않습니다.
사용법
- 텍스트를 입력하거나 붙여 넣으면 모든 해시값이 바로 바뀝니다.
- 또는 ‘파일’로 바꿔 크기에 상관없이 파일을 하나 이상 끌어다 놓습니다. 진행 표시줄과 함께 조각 단위로 읽습니다.
- 해시값을 누르면 복사됩니다. ‘대문자’나 ‘Base64’로 출력 형식을 바꿀 수 있습니다.
- ‘HMAC’을 켜고 비밀 키를 입력하면 일반 해시 대신 HMAC 서명을 계산합니다.
- ‘검증’에 예상 해시값을 붙여 넣으면 일치하는 행이 강조되고, 없으면 일치하지 않는다고 표시합니다.
- 해시는 WebAssembly로 브라우저에서 계산합니다. 텍스트, 파일, 키는 업로드되지 않습니다.
- 텍스트는 입력한 그대로(공백, 줄바꿈 포함) UTF-8 바이트로 해시합니다.
- MD5와 SHA-1은 체크섬 용도로는 괜찮지만 보안에는 안전하지 않습니다. 민감한 데이터에는 SHA-256, SHA-3, BLAKE3를, 비밀번호 저장에는 bcrypt나 Argon2 같은 느린 해시를 쓰세요.
- HMAC은 MD5, SHA-1, SHA-2, SHA-3에서 동작합니다. HMAC을 켜면 BLAKE2b, BLAKE3, CRC32는 숨겨집니다.
- 검증은 대소문자와 공백을 무시하며 Base64 값도 인식합니다.
해시는 어디에 쓰나요
암호학적 해시 함수는 어떤 입력이든 정해진 길이의 지문으로 바꿉니다. 같은 바이트는 늘 같은 해시가 나오고, 한 비트만 바뀌어도 결과의 절반가량이 달라집니다. hello의 SHA-256은 2cf24dba 5fb0a30e 26e83b2a c5b9e29e 1b161e5c 1fa7425e 73043362 938b9824(읽기 쉽게 띄어 썼습니다)이며, 첫 글자를 대문자로 바꾼 Hello는 완전히 다른 값이 나옵니다.
공개 체크섬과 비교해 다운로드 파일 검증, 중복 파일 찾기, Git처럼 내용 기반 저장, HMAC으로 API 요청 서명하기 등에 씁니다. 텍스트는 입력한 그대로 UTF-8 바이트로 계산하므로 끝에 붙은 공백이나 Windows 줄바꿈도 결과를 바꿉니다.
알고리즘 고르는 법
MD5(128비트)와 SHA-1(160비트)은 실제로 충돌을 만드는 공격이 알려져 있어 우연한 손상 확인에는 써도 보안 용도로는 쓰면 안 됩니다. 체크섬과 서명에는 SHA-256, SHA-512(FIPS 180-4)가 안전한 기본 선택입니다. SHA-3(FIPS 202)는 SHA-2와 설계가 다른 예비용 표준입니다. BLAKE3는 큰 파일에서 특히 빠른 최신 해시입니다. CRC32는 ZIP, PNG, 이더넷에서 쓰는 32비트 오류 검출 코드로, 전송 오류는 잡지만 위조는 쉽습니다.
해시는 암호화가 아닙니다
해시 값을 복호화해 원래 데이터를 되찾을 수는 없습니다. 다만 짧거나 흔한 입력은 무작위 대입으로 찾을 수 있어서, 비밀번호는 SHA-256 그대로가 아니라 Argon2, scrypt, bcrypt처럼 솔트를 쓰는 느린 함수로 저장해야 합니다. HMAC(RFC 2104)은 비밀키를 해시에 섞는 방식이라 키를 가진 사람만 서명을 만들고 확인할 수 있습니다.
자주 묻는 질문
파일 해시값이나 체크섬은 어떻게 확인하나요?
파일 탭으로 바꿔 내려받은 파일을 끌어다 놓고, 배포처가 공개한 체크섬을 검증 칸에 붙여 넣으세요. 일치하는 알고리즘 행이 강조되고, 아무것도 맞지 않으면 파일이 다르거나 손상된 것입니다.
해시를 되돌리거나 복호화할 수 있나요?
없습니다. 해시는 단방향 함수입니다. 흔한 비밀번호 같은 짧은 입력은 많이 대입해 보면 찾을 수 있지만, 해시를 원래 데이터로 되돌리는 키는 존재하지 않습니다.
MD5는 아직 안전한가요?
보안과 상관없는 용도, 예를 들어 우연한 변경이나 중복 파일 확인에만 쓰세요. 같은 MD5를 가진 다른 파일을 일부러 만들 수 있으므로 서명이나 위변조 방지에는 SHA-256 이상을 써야 합니다.
SHA-256과 SHA-512는 무엇이 다른가요?
SHA-256은 256비트(16진수 64자), SHA-512는 512비트(128자)를 출력합니다. 둘 다 SHA-2 계열로 안전하다고 평가되며, 64비트 CPU에서는 SHA-512가 더 빠른 경우가 많습니다.
해시를 계산하려고 파일을 업로드하나요?
아니요. 파일은 브라우저 안에서 조금씩 읽어 WebAssembly로 계산합니다. 수 GB 파일도 기기 밖으로 나가지 않습니다.
코드에서 계산한 해시와 다른 이유는 무엇인가요?
대부분 입력 바이트가 다릅니다. 줄바꿈이 하나 더 있거나, 문자 인코딩이 다르거나, 16진수와 Base64를 섞어 비교한 경우입니다. 끝 공백과 줄바꿈을 확인하고 같은 형식으로 비교하세요.