ตัวสร้าง HMAC (SHA-256, SHA-512)
ออกแบบเพื่อความเป็นส่วนตัว — ทำงานในเบราว์เซอร์ของคุณทั้งหมด
สร้าง signature HMAC-SHA256 (หรือ SHA-1, SHA-512) จากข้อความและกุญแจลับ ในเบราว์เซอร์ของคุณ Toova เป็นเครื่องมือที่ถูกต้องสำหรับการลงนามเพย์โหลด webhook คำขอ API และ flow ใดๆ ที่สองฝ่ายแชร์ความลับและต้องการตรวจสอบความแท้
HMAC ใช้สำหรับอะไร
HMAC เปลี่ยนความลับที่แชร์และข้อความเป็น signature ความยาวคงที่ ผู้รับซึ่งรู้ความลับเช่นกันสามารถคำนวณ HMAC ใหม่และเปรียบเทียบไบต์ต่อไบต์ — หาก signatures ตรงกัน ข้อความเป็นของแท้และไม่ถูกแก้ไข Stripe, GitHub, Slack และระบบ webhook เกือบทุกตัวใช้ HMAC-SHA256 เพื่อลงนามเพย์โหลด เพื่อให้ผู้รับเชื่อต้นกำเนิด
ตัวเลือกอัลกอริทึมและการเข้ารหัส
Toova รองรับ HMAC-SHA256, HMAC-SHA1 และ HMAC-SHA512 SHA-256 เป็นค่าเริ่มต้นสมัยใหม่ เลือกอัลกอริทึมที่ตรงกับเอกสารของบริการที่คุณรวมเข้าด้วยกัน เอาต์พุตเป็น hex โดยค่าเริ่มต้น โดยมี Base64 และ Base64-URL variants — ผู้ให้บริการ webhook ส่วนใหญ่คาดหวังรูปแบบเฉพาะ ดังนั้นตรวจสอบเอกสารก่อนพลิกสวิตช์
การลงนามเฉพาะในเครื่อง
Signature คำนวณในเบราว์เซอร์ของคุณทั้งหมด ข้อความและกุญแจลับของคุณไม่เคยออกจากหน้า สิ่งนี้สำคัญเพราะความลับคือสิ่งที่ทำให้ใครก็ตามสามารถปลอม signature ที่ถูกต้องได้ — การรั่วไหลให้ฟอร์มของบุคคลที่สามจะ compromise ระบบ Toova ปลอดภัยสำหรับการดีบัก webhooks production การตรวจสอบ signatures และการสำรวจการรวม API
คำถามที่พบบ่อย
- HMAC กับแฮชธรรมดาแตกต่างกันอย่างไร
- แฮชธรรมดาตายตัวสำหรับอินพุตใดๆ — ใครก็สามารถคำนวณได้ HMAC ผสมกุญแจลับ ดังนั้นเฉพาะฝ่ายที่มีกุญแจเท่านั้นที่สามารถสร้าง signature ที่ตรงกัน นั่นคือสิ่งที่ทำให้ HMAC เหมาะสำหรับการตรวจสอบความแท้ ขณะที่แฮชธรรมดาดีเฉพาะสำหรับความสมบูรณ์
- ฉันควรเลือกอัลกอริทึมไหน
- ใช้ HMAC-SHA256 เว้นแต่บริการที่คุณรวมเข้าด้วยกันต้องการบางอย่างอื่นโดยเฉพาะ SHA-1 ยังคงพบบ่อยในระบบเก่าแต่ไม่ควรใช้ในการออกแบบใหม่ SHA-512 มากเกินไปสำหรับกรณีใช้งานส่วนใหญ่แต่อนุรักษ์นิยมเล็กน้อย
- กุญแจควรเป็นสตริงหรือไบต์
- HMAC รับลำดับไบต์ Toova ปฏิบัติต่อกุญแจของคุณเป็นข้อความ UTF-8 โดยค่าเริ่มต้น ซึ่งตรงกับสิ่งที่ API ส่วนใหญ่ทำ หาก spec บอกว่า "hex-encoded secret" พลิกสวิตช์ key-encoding เพื่อให้ไบต์ตรงกับสิ่งที่บริการคาดหวัง
- ความลับของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่
- ไม่ การลงนามเกิดขึ้นในเบราว์เซอร์ของคุณทั้งหมด ความลับและข้อความของคุณไม่ออกจากอุปกรณ์ และแท็บเครือข่ายจะว่างระหว่างการลงนาม
- ทำไม signature ของฉันไม่ตรงกับที่บริการคาดหวัง
- บ่อยที่สุด: การเข้ารหัสไม่ตรงกัน (hex กับ Base64), newline ต่อท้ายในเพย์โหลด หรืออัลกอริทึมผิด ตรวจสอบทั้งสามตรงกับเอกสารบริการแน่นอน