해시 함수, 언제 무엇을 써야 할까
해시 함수는 임의 길이의 입력을 고정 길이의 지문(digest)으로 바꾸는 단방향 함수입니다. 입력이 한 글자만 달라져도 해시 전체가 완전히 바뀌기 때문에, 파일 무결성 검증, 데이터 중복 감지, API 서명, 비밀번호 저장(솔트+전용 알고리즘 병용) 등 개발 전반의 기초 도구로 쓰입니다.
이 도구는 텍스트를 입력하는 즉시 MD5(128비트), SHA-1(160비트), SHA-256, SHA-384, SHA-512를 한 번에 계산해 표로 보여줍니다. SHA 계열은 브라우저 내장 Web Crypto API(crypto.subtle.digest)를 사용하고, WebCrypto가 지원하지 않는 MD5는 표준 테스트 벡터로 검증된 순수 JavaScript 구현을 사용합니다. 유니코드(한글·이모지)도 UTF-8 기준으로 정확히 처리됩니다.
파일 모드에서는 최대 100MB 파일의 해시(체크섬)를 계산할 수 있습니다. 다운로드한 설치 파일의 SHA-256이 배포 페이지에 적힌 값과 일치하는지 확인하거나, 두 파일이 동일한지 빠르게 비교할 때 유용합니다. 파일 역시 브라우저 안에서만 읽히며 업로드되지 않습니다.
알고리즘 선택 기준: MD5와 SHA-1은 충돌 공격이 알려져 있어 보안 용도로는 부적합하며 체크섬·캐시 키 용도로만 쓰세요. 일반적인 보안 용도(서명, 토큰, 무결성)에는 SHA-256이 사실상 표준이고, 더 긴 다이제스트가 필요하면 SHA-384/512를 사용합니다. 비밀번호 저장에는 이들 대신 bcrypt, scrypt, Argon2 같은 전용 알고리즘을 사용해야 합니다.