HMAC (Hash-based Message Authentication Code) เป็นเทคโนโลยีการตรวจสอบข้อความที่กำหนดไว้ใน RFC 2104 HMAC ประมวลผลคีย์ร่วมกับข้อความผ่านฟังก์ชันแฮชเพื่อสร้างลายเซ็นความยาวคงที่ ต่างจากแฮชธรรมดา HMAC ต้องรู้คีย์เพื่อสร้างหรือตรวจสอบลายเซ็น จึงรับประกันทั้งความสมบูรณ์ของข้อความและความถูกต้อง
**HMAC เป็นรากฐานของความปลอดภัย API สมัยใหม่** Stripe, GitHub, Shopify, Slack และ Twilio ใช้ HMAC-SHA256 เซ็นเหตุการณ์ Webhook เพื่อให้แน่ใจว่าคำขอมาจากแพลตฟอร์มจริง AWS ใช้ HMAC-SHA256 สำหรับเซ็นคำขอ Signature V4 อัลกอริทึม HS256 ของ JWT แท้จริงแล้วคือ HMAC-SHA256 การเข้าใจ HMAC เป็นก้าวแรกในการเชี่ยวชาญความปลอดภัย API
**แต่ละแพลตฟอร์มมีรูปแบบลายเซ็นต่างกัน**: รูปแบบของ Stripe คือ `t=timestamp,v1=hex_signature` โดยเซ็น `timestamp.payload`; GitHub ใช้ `X-Hub-Signature-256` รูปแบบ `sha256=hex_signature`; Shopify ใช้ `X-Shopify-Hmac-Sha256` ค่าเป็น Base64 เครื่องมือนี้รองรับการแยกวิเคราะห์และตรวจสอบรูปแบบเหล่านี้โดยอัตโนมัติ
**ทำไมการตรวจสอบลายเซ็นจึงล้มเหลว?** สาเหตุที่พบบ่อยที่สุดคือรูปแบบข้อความไม่ตรง: แพลตฟอร์มอาจเซ็น `timestamp.payload` แทนข้อความดิบ หรือข้อความมีขึ้นบรรทัดใหม่เพิ่มเติม หรือลายเซ็นมีคำนำหน้า (เช่น `sha256=`) ที่ต้องลบออก ตรวจสอบเอกสารแพลตฟอร์มอย่างละเอียดและเปรียบเทียบโดยใช้ค่าฐานสิบหกดิบ
เครื่องมือนี้ใช้ **Web Crypto API** (SubtleCrypto) ในเบราว์เซอร์สำหรับการคำนวณ HMAC —ไลบรารีการเข้ารหัสเดียวกันกับที่ใช้งาน HTTPS และ TLS การคำนวณทั้งหมดเกิดขึ้นภายในเครื่อง คีย์และข้อความไม่ถูกส่งไปยังเซิร์ฟเวอร์ใด ๆ เปิดแผง Network ใน DevTools ของเบราว์เซอร์เพื่อยืนยันว่าไม่มีการร้องขอภายนอก