เครื่องสร้าง HMAC (HMAC-SHA256 ในเบราว์เซอร์)
หน้าสร้าง HMAC SHA256 แบบไม่ใช้เครือข่ายสำหรับคำนวณ HMAC และตรวจสอบลายเซ็นได้อย่างรวดเร็ว
ทุกอย่างทำงานในเบราว์เซอร์ของคุณแบบภายในเครื่อง คีย์และข้อความจะไม่ถูกส่งหรือบันทึก
วิธีใช้งาน (การสร้างลายเซ็น HMAC)
- ป้อนคีย์ หากสเปก API ของคุณให้คีย์แบบไบต์ไบนารี ให้เลือกฟอร์แมตอินพุตเป็น Hex หรือ Base64
- ป้อน payload ของข้อความที่ต้องการลงลายเซ็น
- เลือกฟอร์แมตเอาต์พุต (Hex / Base64 / Base64URL) แล้วคัดลอกผลลัพธ์
ตัวอย่าง (test vectors)
ตัวอย่าง 1 (ตรวจสอบแบบสั้น)
อินพุต: คีย์ = secret (UTF-8), ข้อความ = message (UTF-8)
HMAC-SHA256 (Hex):8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b
HMAC-SHA256 (Base64):i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=
ตัวอย่าง 2 (วลีที่ใช้บ่อย)
อินพุต: คีย์ = key, ข้อความ = The quick brown fox jumps over the lazy dog
Hex:f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
Base64:97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=
จุดที่พลาดกันบ่อย
- ความต่างของ newline แบบ LF กับ CRLF จะให้ลายเซ็นไม่เหมือนกัน
- การตัดช่องว่างหัวท้ายอาจทำให้ลายเซ็น API ไม่ตรงกัน
- Base64URL มักหมายถึงการแทน + เป็น -, / เป็น _ และตัด padding = ออก โปรดตรวจสอบสเปก API ของคุณ
- หากคีย์ถูกแจกจ่ายมาเป็นไบต์แบบ Hex/Base64 แต่ไปตีความเป็นข้อความธรรมดา ผลลัพธ์จะไม่ตรงกัน
คำถามที่พบบ่อย
คีย์ของฉันถูกบันทึกไว้หรือไม่?
ไม่ เครื่องมือนี้คำนวณในเบราว์เซอร์ของคุณ และไม่ส่งคีย์หรือข้อความไปยังเซิร์ฟเวอร์ใด ๆ
ควรใช้ Base64 หรือ Hex?
ทั้งสองแบบพบได้ทั่วไป คุณสามารถเลือกเอาต์พุตเป็น Hex / Base64 / Base64URL ให้ตรงกับสเปก API ของคุณ
ใช้การเข้ารหัสอักขระแบบใด (UTF-8)?
อินพุตแบบข้อความจะถูกเข้ารหัสเป็น UTF-8 ก่อนคำนวณ HMAC สำหรับค่าไบนารีให้ใช้อินพุตแบบ Hex/Base64
HMAC ต่างจากแฮช SHA-256 อย่างไร?
SHA-256 เป็นแฮชธรรมดา ส่วน HMAC เพิ่มคีย์ลับเพื่อยืนยันความถูกต้องของข้อความ
ผลลัพธ์ของฉันไม่ตรงกัน ควรตรวจสอบอะไรบ้าง?
ตรวจสอบการตีความคีย์ (ข้อความหรือไบต์), การจัดการ newline, การตัดช่องว่าง และกฎของ Base64URL
ข้อมูลเสริม
HMAC คืออะไร?
HMAC คือรหัสยืนยันความถูกต้องของข้อความแบบ keyed-hash ที่ใช้คีย์ลับร่วมกับฟังก์ชันแฮช
ความต่างจาก SHA-256
SHA-256 เพียงอย่างเดียวไม่มีคีย์ลับ ส่วน HMAC-SHA256 ต้องใช้คีย์ร่วมกันและใช้สำหรับลายเซ็น
กรณีใช้งานทั่วไป
การลงลายเซ็นคำขอ API, การตรวจสอบ webhook และการตรวจสอบความสมบูรณ์ของโทเค็น