HMAC 생성기
메시지와 열쇠로 HMAC 서명을 만들고, 받은 서명과 같은지 견줍니다. 16진과 base64 로 냅니다.
받은 서명과 견주기
파일은 서버로 전송되지 않고 브라우저에서만 처리됩니다.
사용 방법
가입도 설치도 없이, 사용 횟수 제한도 없이 무료로 쓸 수 있습니다.
메시지와 열쇠를 붙여 넣고 해시를 고르면 서명이 나옵니다. 받은 서명을 아래 칸에 넣으면 둘이 같은지 알려 줍니다.
웹훅 검증의 뒤에 있는 계산이 이것입니다. 스트라이프·깃허브를 비롯한 결제사 대부분이 요청 본문을 공유 비밀로 서명해 헤더에 넣어 보내고, 받는 쪽은 같은 계산을 다시 해서 다르면 거절합니다.
그냥 해시와는 다릅니다. SHA-256 은 누구나 계산할 수 있어서, 본문을 바꾸고 새 해시를 함께 보내면 그만입니다. HMAC 은 열쇠를 가진 쪽만 만들 수 있고, 그래서 출처의 증거가 됩니다.
열쇠는 글자가 아니라 16진이나 base64 로 건네지는 일이 많아 표기를 따로 고르게 해 두었습니다. 16진 열쇠를 글자로 읽으면 완전히 다른 서명이 나오는데, 코드가 멀쩡해 보이는데도 검증이 실패하는 흔한 이유입니다.
견주기는 언제나 끝까지 봅니다. 다른 자리를 만나자마자 그만두면 걸리는 시간이 앞에서 몇 글자가 맞았는지를 알려 주고, 공격자는 그 차이만으로 서명을 한 글자씩 맞춰 나갈 수 있습니다. 서버에서도 같은 방식으로 견줘야 합니다.
SHA-1 은 아직 그것을 요구하는 옛 시스템이 있어 넣어 두었을 뿐입니다. 새로 만드는 것에는 쓰지 마세요.
붙여넣은 값은 서버로 전송되지 않습니다. 브라우저의 Web Crypto 로 계산합니다.