dev/generator

สร้างรหัสยืนยันข้อความ HMAC - ฟรี ใช้งานได้ทันที | Smocky

อ่านเป็นภาษาอังกฤษ

ข้อมูลไม่ออกจากเบราว์เซอร์

ข้อความ, Hex หรือ Base64 ขนาดสูงสุด 65,536 หน่วยรหัส UTF-16 หากเกินขนาดจะแจ้งข้อผิดพลาดโดยไม่ตัดข้อมูล

ข้อความ, Hex หรือ Base64 ขนาดสูงสุด 65,536 หน่วยรหัส UTF-16 หากเกินขนาดจะแจ้งข้อผิดพลาดโดยไม่ตัดข้อมูล

รูปแบบผลลัพธ์

กรอกข้อความและกุญแจลับ แล้วกดสร้างเพื่อคำนวณรหัสยืนยันข้อความ HMAC

HMAC คืออะไร

HMAC (Hash-based Message Authentication Code) ใช้ข้อความร่วมกับกุญแจลับเพื่อสร้างรหัสยืนยันข้อความ ผู้รับที่มีกุญแจเดียวกันสามารถคำนวณรหัสซ้ำเพื่อตรวจว่าข้อความถูกเปลี่ยนหรือไม่

HMAC ต้องใช้กุญแจลับ ต่างจากแฮชทั่วไป และไม่ได้เข้ารหัสหรือซ่อนเนื้อหา สำหรับการลงนามคำขอ API ทั้งสองฝ่ายต้องใช้อัลกอริทึม ไบต์ของกุญแจ และไบต์ข้อความเหมือนกันทุกประการ รวมช่องว่างและอักขระขึ้นบรรทัดใหม่

ตัวอย่างผู้ส่งและผู้รับ

ผู้ส่ง: ใช้กุญแจร่วมสมมติ example-shared-secret-only ผู้ส่งคำนวณรหัส HMAC จากข้อความ แล้วส่งข้อความพร้อมรหัสโดยไม่ส่งกุญแจลับ

ผู้รับ: ผู้รับใช้กุญแจสมมติเดียวกันคำนวณรหัสจากข้อความที่ได้รับ แล้วเปรียบเทียบทั้งสองรหัส หากตรงกัน แสดงว่าข้อความตรงกับที่ผู้มีกุญแจร่วมส่งมา หากไม่ตรงกัน ข้อความหรือกุญแจอาจต่างกัน

เครื่องมือนี้สร้างรหัสจากไบต์ที่คุณกรอกเท่านั้น ไม่ส่งหรือยืนยันคำขอ API การป้องกันส่งคำขอซ้ำและการจัดรูปแบบคำขอเป็นหน้าที่ของโปรโตคอล API

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

รหัส HMAC ต่างจากค่าแฮชทั่วไปอย่างไร

ค่าแฮชไม่ใช้กุญแจ ทุกคนคำนวณได้จากข้อความอย่างเดียว จึงไม่พิสูจน์ว่าใครสร้าง ส่วน HMAC ต้องใช้กุญแจลับ ผู้ที่มีกุญแจจึงสร้างหรือยืนยันรหัสที่ตรงกันได้ ใช้ยืนยันข้อความแทนการตรวจค่าแฮชอย่างเดียว

HMAC เข้ารหัสข้อความหรือเหมือนลายเซ็นดิจิทัลหรือไม่

ไม่ใช่ทั้งสองอย่าง HMAC ไม่เข้ารหัสหรือซ่อนข้อความ ผลเป็นรหัสขนาดคงที่ที่ใช้คู่กับข้อความ ไม่ใช่ ciphertext และไม่ใช่ลายเซ็นแบบกุญแจสาธารณะ HMAC ใช้กุญแจลับร่วมหนึ่งกุญแจ ส่วนลายเซ็นดิจิทัลใช้กุญแจส่วนตัวลงนามและกุญแจสาธารณะตรวจสอบเพื่อพิสูจน์ผู้สร้างแก่บุคคลที่สาม HMAC ตรวจได้เฉพาะผู้ที่มีกุญแจร่วม

ทำไมเปลี่ยนเฉพาะรูปแบบข้อมูลแล้วรหัสเปลี่ยน

HMAC คำนวณจากไบต์จริง Text, Hex และ Base64 อธิบายไบต์คนละวิธี กุญแจ Hex 6162 กับ Base64 YWI= ถอดเป็นสองไบต์เดียวกันจึงให้รหัสเดียวกัน แต่ Text 6162 เป็นสี่ไบต์จึงให้รหัสต่างกัน การเพิ่มช่องว่างหรือบรรทัดใหม่ในข้อความก็เปลี่ยนไบต์และรหัส

สร้างรหัสจากข้อความว่างได้หรือไม่

ได้ ข้อความว่าง รวม Hex หรือ Base64 ที่ถอดเป็นศูนย์ไบต์ ใช้ได้และให้รหัสที่แน่นอน แต่กุญแจลับที่ถอดเป็นศูนย์ไบต์จะถูกปฏิเสธ เพราะขัดกับจุดประสงค์ของการใช้กุญแจ

ใช้ลงนามและส่งคำขอ API ได้หรือไม่

ไม่ได้ เครื่องมือนี้คำนวณรหัสจากไบต์ที่กรอก ไม่สร้าง ส่งหรือยืนยันคำขอ HTTP การป้องกันคำขอซ้ำด้วย timestamp หรือ nonce และการกำหนดไบต์ที่จะลงนามเป็นหน้าที่โปรโตคอล API ต้องทำให้ตรงกันก่อนเทียบรหัส

ควรใช้ HMAC-MD5 หรือ HMAC-SHA-1 หรือไม่

ใช้เฉพาะเมื่อต้องเข้ากับระบบเดิมที่กำหนดไว้ เช่น webhook เก่า ต่างจาก MD5 หรือ SHA-1 ที่ไม่ใช้กุญแจ ยังไม่มีการโจมตีที่ใช้ได้จริงที่รู้จักสำหรับกู้กุญแจหรือปลอมรหัส HMAC-MD5/HMAC-SHA-1 โดยไม่มีกุญแจ แต่เมื่อควบคุมทั้งสองฝั่งควรเลือก HMAC-SHA-256 หรืออัลกอริทึมที่แข็งแรงกว่า

Send feedback

About Smocky

Send this feedback to Smocky via Cloudflare, a third-party service. Only the feedback you enter is included, along with your browser information. Your tool inputs and results are never attached. Please do not include passwords or other sensitive information. Privacy policy

Feedback is unavailable right now. Your draft is still here.