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