해시(Hash)란?
해시 함수는 어떤 길이의 데이터를 입력받아도 항상 고정된 길이의 값(해시값)을 출력하는 함수입니다. 같은 입력에는 항상 같은 해시값이 나오지만, 입력이 조금만 달라져도 완전히 다른 해시값이 나오는 특성 덕분에, 파일 무결성 검증이나 비밀번호 저장 등에 널리 활용됩니다.
왜 MD5는 지원하지 않나요?
MD5와 SHA-1은 이미 충돌(서로 다른 입력이 같은 해시값을 만들어내는 것) 공격이 실제로 성공한 사례가 있어 보안 용도로는 더 이상 권장되지 않습니다. 이 도구는 브라우저에 내장된 Web Crypto API를 사용하는데, 이 API는 취약한 MD5를 지원하지 않으므로 SHA-1(참고용으로만 제공)과 SHA-2 계열(SHA-256/384/512)만 제공합니다. 보안이 중요한 용도라면 SHA-256 이상을 사용하시길 권장합니다.
유의사항
입력한 텍스트는 브라우저 내장 Web Crypto API를 통해 브라우저 안에서만 처리되며 서버로 전송되지 않습니다. 이 도구는 UTF-8로 인코딩된 텍스트를 기준으로 계산하며, 파일 자체의 해시값 계산은 지원하지 않습니다.
자주 묻는 질문
해시값에서 원본 텍스트를 알아낼 수 있나요?
아니요. 해시 함수는 한쪽 방향으로만 계산되는 단방향 함수로 설계되어 있어, 해시값만으로 원본 데이터를 역산해낼 수 없습니다. 이 특성 때문에 비밀번호를 평문 대신 해시값으로 저장하는 것이 안전한 관행으로 여겨집니다.
공백이나 줄바꿈도 결과에 영향을 주나요?
네. 해시 함수는 입력의 아주 작은 차이(공백 하나, 줄바꿈 하나)에도 완전히 다른 해시값을 만들어내므로, 정확히 같은 텍스트를 비교할 때만 해시값이 일치합니다.