해시 함수와 HMAC란?
암호화 해시 함수는 임의의 입력을 받아 사실상 되돌릴 수 없는 고정 크기 다이제스트(지문)를 생성합니다. 예를 들어 SHA-256는 입력 크기에 관계없이 항상 256비트(64진수 문자) 값을 출력합니다. HMAC(해시 기반 메시지 인증 코드)은 해시 기능을 비밀 키와 결합하여 키가 있는 다이제스트를 생성하여 데이터 무결성과 신뢰성을 모두 입증합니다. HMAC는 API 인증, JWT 서명, 웹훅 확인 및 보안 메시지 전달에 널리 사용됩니다. 웹 암호화 API는 일반 해싱 및 HMAC 작업 모두에 대해 기본적으로 SHA-1, SHA-256, SHA-384 및 SHA-512를 지원합니다.
이 무료 해시 및 HMAC 생성기를 사용하는 방법
- 1필요에 따라 해시 또는 HMAC 탭을 선택하세요.
- 2해싱 알고리즘(SHA-1, SHA-256, SHA-384 또는 SHA-512)을 선택합니다.
- 3해시하려는 텍스트를 입력 필드에 입력하거나 붙여넣습니다.
- 4HMAC의 경우 추가 키 필드에 비밀 키를 입력하세요.
- 5출력이 즉시 나타납니다. 필요한 경우 대문자로 전환하고 복사를 클릭하세요.
해싱 및 HMAC의 주요 활용 사례
파일 무결성 확인
SHA-256 체크섬을 비교하여 다운로드한 파일이 전송 중에 변조되거나 손상되지 않았는지 확인하세요.
API 웹훅 서명 확인
GitHub, Stripe 및 Slack와 같은 서비스는 HMAC-SHA256를 사용하여 웹후크 페이로드에 서명하므로 발신자의 진위 여부를 확인할 수 있습니다.
비밀번호 해싱 사전 확인
서버측 비밀번호 저장소를 구현하기 전에 출력 형식을 이해하기 위해 문자열의 SHA 해시를 빠르게 계산합니다(실제 비밀번호에는 항상 bcrypt/scrypt를 사용하세요).
디지털 서명 및 토큰 검증
JWT 토큰 및 OAuth 흐름은 HMAC-SHA256를 사용하여 페이로드에 서명하여 토큰이 변경되지 않았는지 확인합니다.
자주 묻는 질문
SHA-256 해싱은 암호화와 동일합니까?
아니요. 해싱은 단방향 함수입니다. 즉, 해시에서 원래 입력을 복구할 수 없습니다. 암호화는 양방향이며 해독하려면 키가 필요합니다. 해싱은 전송 중인 기밀 데이터를 보호하는 것이 아니라 무결성 검사에 사용됩니다.
MD5가 포함되지 않은 이유는 무엇입니까?
MD5는 암호화되어 있으며 충돌 공격에 취약합니다. Web Crypto API는 설계상 MD5를 지원하지 않습니다. 보안에 민감한 사용 사례의 경우 SHA-256 이상이 권장됩니다.
해시와 HMAC의 차이점은 무엇인가요?
일반 해시는 메시지만 입력으로 사용하는 반면 HMAC에는 비밀 키도 필요합니다. HMAC는 데이터가 변경되지 않았으며 비밀 키를 아는 사람이 생성했음을 모두 증명합니다.
내 데이터가 서버로 전송되나요?
아니요. 모든 해싱과 HMAC 계산은 웹 암호화 API를 사용하여 브라우저에서 로컬로 수행됩니다. 데이터가 장치 밖으로 나가지 않습니다.