Hash
해시 생성기
MD5, SHA-1, SHA-256, SHA-512 해시를 생성하세요.
해싱에 대하여
해시 함수는 모든 입력을 받아 고정된 길이의 지문을 생성합니다. 같은 입력은 항상 같은 해시를 생성하지만, 해시를 원래 데이터로 되돌릴 수는 없으며, 입력에서 한 글자만 바뀌어도 출력이 완전히 달라집니다.
텍스트의 해시는 문자가 아니라 정확한 바이트에 좌우됩니다. 같은 문자열이라도 UTF-8과 UTF-16으로 인코딩하면 사람이 읽으면 똑같아 보여도 완전히 다른 두 해시가 나옵니다. 파일 해시 도구가 "텍스트"가 아니라 원시 바이트를 다루는 이유가 바로 이것으로, 거기에는 풀어야 할 모호함이 없습니다. 여기에 붙여넣은 텍스트를 해시할 때는 먼저 UTF-8로 인코딩되는데, 이는 당신이 비교할 거의 모든 체크섬도 전제하는 방식이지만, 그런 전제가 존재한다는 것은 알아둘 가치가 있습니다.
사용되는 곳
- 다운로드한 파일이 배포자가 공개한 체크섬과 일치하는지 확인
- 전체 내용을 비교하지 않고 두 파일이 같은지 비교
- 캐시 무효화 키나 콘텐츠 주소 기반 식별자 생성
- 전송이나 백업 후 데이터 무결성 확인
자주 묻는 질문
MD5나 SHA-1은 비밀번호에 안전한가요?
아닙니다. 둘 다 보안 목적으로는 취약합니다. 대신 bcrypt나 Argon2 같은 전용 비밀번호 해싱 알고리즘을 사용하세요. 이것들은 범용 해시이며 비밀번호용 해시가 아닙니다.
어떤 알고리즘을 사용해야 하나요?
무결성 검사에는 SHA-256이나 SHA-512가 현재 표준입니다. MD5와 SHA-1은 여전히 기존 체크섬 검증에 흔히 쓰이지만 보안 목적으로 신뢰해서는 안 됩니다.
업로드한 파일이 저장되나요?
아닙니다. 파일은 해당 요청에 대해서만 서버에서 해시되고 이후 폐기됩니다.
같은 텍스트를 해시했는데 다른 곳에서는 결과가 다른 이유는 무엇인가요?
가장 흔한 원인은 문자 인코딩입니다. 겉보기에 같은 텍스트라도 UTF-8, UTF-16, 혹은 다른 인코딩이냐에 따라 다른 바이트 시퀀스가 되고, 따라서 해시도 달라집니다. 끝의 공백이나 줄바꿈 방식의 차이(\n 대 \r\n)도 눈에 보이지 않게 바이트를 바꿉니다. 이 도구는 붙여넣은 텍스트를 UTF-8로 해시합니다. 비교 대상 값이 다른 인코딩에서 나온 것이라면 불일치는 버그가 아니라 예상된 결과입니다.