AliceLium
shield

สร้าง HMAC เซ็น signature

ใส่ข้อความกับกุญแจลับ ได้ HMAC-MD5/SHA-1/SHA-256/384/512 เลือกรูปแบบกุญแจได้ทั้งข้อความ hex และ Base64

lockทำงานในเครื่องคุณ ไฟล์ไม่ถูกอัปโหลด boltเห็นผลทันที ไม่ต้องรอคิว check_circleใช้ได้ไม่จำกัด ไม่นับโควตา
lock_open

เข้าสู่ระบบเพื่อใช้เครื่องมือนี้ — ฟรี

สมัครฟรีในไม่ถึงนาที ไม่ต้องใส่บัตรเครดิต · เก็บประวัติงานของคุณให้อัตโนมัติ

boltสมัครฟรี — ใช้ได้ทันที
มีบัญชีแล้ว?
เข้าสู่ระบบ
check_circleฟรี auto_deleteไฟล์ลบใน 1 ชม. historyเก็บประวัติงาน 7 วัน

คำถามที่พบบ่อย

help
ทำไมต้องเลือก “รูปแบบของกุญแจ” ด้วย ไม่ใช่วางกุญแจแล้วจบ?
expand_more

เพราะ HMAC ไม่ได้ทำงานกับตัวอักษร แต่ทำงานกับไบต์ของกุญแจ สมมติ gateway ให้กุญแจมาเป็นเลขฐานสิบหก 64 ตัว ถ้าเราเอาไปใช้แบบข้อความ สิ่งที่เข้าอัลกอริทึมคือ 64 ไบต์ของตัวอักษร 0 ถึง f ไม่ใช่ 32 ไบต์ที่เจ้าของกุญแจหมายถึง ค่า signature ที่ได้จะผิดทั้งหมด แต่หน้าตายังดูปกติดีทุกอย่าง จึงไม่มีอะไรบอกว่าผิดตรงไหน เครื่องมือทั่วไปที่ไม่มีตัวเลือกนี้คือสาเหตุที่หลายคนนั่งไล่โค้ดทั้งวันแล้วไม่เจอ ถ้าเอกสารเขียนว่ากุญแจเป็น hex หรือ Base64 ให้กดเลือกให้ตรงเสมอ ถ้าเอกสารไม่ได้บอกอะไรเลย แปลว่าเป็นข้อความธรรมดา (UTF-8)

help
จะใช้เซ็น signature ให้ 2C2P หรือ Omise ต้องตั้งค่าอย่างไร?
expand_more

2C2P ใช้ HMAC-SHA256 แล้วส่งเป็นเลขฐานสิบหกตัวพิมพ์ใหญ่ ส่วน Omise ใช้ HMAC-SHA256 เป็นเลขฐานสิบหกตัวพิมพ์เล็กในเฮดเดอร์ และ LINE Messaging API ใช้ HMAC-SHA256 แล้วเข้ารหัสเป็น Base64 เครื่องมือนี้มีปุ่มตั้งค่าสำเร็จรูปของทั้งสามแบบให้กดทีเดียว สิ่งที่ต้องระวังที่สุดคือ “ข้อความที่เซ็น” ต้องเป็นข้อความดิบตัวต่อตัวตามที่เอกสารกำหนด ห้ามจัดรูป JSON ใหม่ ห้ามสลับลำดับฟิลด์ และห้ามมีช่องว่างหรือบรรทัดว่างเกินท้ายสุด เพราะทุกไบต์มีผลต่อค่าที่ออกมา

help
HMAC ต่างจากการเอาข้อความมาต่อกับกุญแจแล้วแฮชธรรมดาอย่างไร?
expand_more

ต่างกันเรื่องความปลอดภัย การเอากุญแจมาต่อหน้าข้อความแล้วแฮชตรง ๆ เปิดช่องให้ผู้โจมตีต่อข้อมูลเพิ่มท้ายข้อความแล้วคำนวณค่าใหม่ได้โดยไม่ต้องรู้กุญแจ (เรียกว่า length extension attack) HMAC ตามมาตรฐาน RFC 2104 แก้ปัญหานี้ด้วยการแฮชสองรอบ โดยผสมกุญแจกับค่าคงที่คนละชุดในแต่ละรอบ ระบบรับชำระเงินและ webhook จึงกำหนดให้ใช้ HMAC ไม่ใช่แฮชเปล่า ๆ และด้วยเหตุผลเดียวกันนี้ HMAC-MD5 กับ HMAC-SHA-1 ยังถือว่าใช้ได้อยู่ในทางปฏิบัติแม้ตัวแฮชเปล่า ๆ จะถูกเจาะไปแล้ว แต่ถ้าเลือกเองได้สำหรับงานใหม่ ให้ใช้ SHA-256 เป็นค่ามาตรฐาน

help
กุญแจลับที่วางลงไปถูกส่งไปที่เซิร์ฟเวอร์ไหม?
expand_more

ไม่ถูกส่งไปไหนเลย การคำนวณทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณด้วยจาวาสคริปต์ ไม่มีการอัปโหลด ไม่เข้าคิว ไม่นับโควตา และใช้ได้ไม่จำกัดจำนวนครั้ง ปิดหน้าเว็บเมื่อไหร่ทั้งกุญแจและข้อความก็หายไปพร้อมกัน ไม่มีอะไรค้างอยู่ที่เรา ข้อนี้สำคัญเป็นพิเศษกับเครื่องมือ HMAC เพราะกุญแจที่ใช้เซ็น payment gateway คือกุญแจที่สั่งเงินได้จริง ไม่ควรวางลงเว็บที่ส่งข้อมูลขึ้นเซิร์ฟเวอร์เด็ดขาด

เครื่องมือที่เกี่ยวข้อง

ดูทั้งหมดchevron_right