Tink API จะนำ BLOB ไบนารีที่กำหนดเองเป็นอินพุต ซึ่งหมายความว่าหากคุณต้องการ เข้ารหัสข้อมูลที่มีโครงสร้าง เช่น บัฟเฟอร์โปรโตคอล คุณต้อง เข้ารหัสข้อมูลก่อน
เข้ารหัส Protobuf
วิธีเข้ารหัส
- ทำให้ Protobuf เป็นอนุกรมให้เป็นอาร์เรย์ไบต์
- เข้ารหัสไบต์แบบอนุกรม แล้วจัดเก็บหรือส่งข้อความเข้ารหัสที่ได้ ใช้:
วิธีถอดรหัส
- ถอดรหัสข้อความเข้ารหัส
- หากขั้นตอนที่ 1 สำเร็จ ให้ดีซีเรียลไลซ์ Protobuf
ปกป้อง Protobuf จากการงัดแงะ
ในกรณีส่วนใหญ่ การเข้ารหัส produf เหมาะสำหรับการตรวจสอบสิทธิ์เพียงอย่างเดียว
วิธีปกป้อง Protobuf จากการงัดแงะ
- ทำให้ Protobuf เป็นอนุกรมให้เป็นอาร์เรย์ไบต์
- ลงชื่อหรือตรวจสอบสิทธิ์ไบต์แบบอนุกรม ใช้:
- จัดเก็บไบต์ที่ต่อเนื่องกันไว้พร้อมกับลายเซ็น (หรือ MAC)
ในการยืนยัน ให้ทำดังนี้:
- รับ Protobuf แบบอนุกรมและลายเซ็น (หรือ MAC)
- ยืนยันลายเซ็น (หรือ MAC)
- ดีซีเรียลไลซ์ Protobuf
โปรดทราบว่าลายเซ็นหรือ MAC ที่ถูกต้องไม่ได้รับประกันว่าข้อมูลจะถูกต้อง ฟอร์แมตแล้ว การใช้งานที่แยกวิเคราะห์ข้อมูลควรคาดหวังว่า ข้อมูลอาจเสียหายได้
ปกป้องข้อมูลหลายรายการ
หากต้องการป้องกันรายการข้อมูลหลายรายการ ให้ใช้วิธีการเรียงอันดับ เพิ่มข้อมูลทั้งหมด รายการไปยัง Protobuf และเข้ารหัส (หรือตรวจสอบสิทธิ์) ตามที่อธิบายไว้ข้างต้น
คุณสามารถเรียงลำดับในลักษณะต่อไปนี้ได้ด้วย
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
สุดท้าย เข้ารหัส (หรือตรวจสอบสิทธิ์) ไบต์อาร์เรย์ผลลัพธ์