เครื่องสร้าง HMAC (HMAC-SHA256 ในเบราว์เซอร์)

หน้าสร้าง HMAC SHA256 แบบไม่ใช้เครือข่ายสำหรับคำนวณ HMAC และตรวจสอบลายเซ็นได้อย่างรวดเร็ว

ทุกอย่างทำงานในเบราว์เซอร์ของคุณแบบภายในเครื่อง คีย์และข้อความจะไม่ถูกส่งหรือบันทึก

คำนวณในเครื่อง ไม่จัดเก็บข้อมูล Hex และ Base64
ไม่มีการส่งข้อมูลผ่านเครือข่าย

วิธีใช้งาน (การสร้างลายเซ็น HMAC)

  1. ป้อนคีย์ หากสเปก API ของคุณให้คีย์แบบไบต์ไบนารี ให้เลือกฟอร์แมตอินพุตเป็น Hex หรือ Base64
  2. ป้อน payload ของข้อความที่ต้องการลงลายเซ็น
  3. เลือกฟอร์แมตเอาต์พุต (Hex / Base64 / Base64URL) แล้วคัดลอกผลลัพธ์
HMAC ทำงานกับไบต์ ไม่ใช่ข้อความที่มองเห็น ความต่างของการเข้ารหัส UTF-8, newline และช่องว่างส่วนเกินจะทำให้ผลลัพธ์เปลี่ยนไป

ตัวอย่าง (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 และการตรวจสอบความสมบูรณ์ของโทเค็น