টিঙ্ক এপিআই ইনপুট হিসাবে নির্বিচারে বাইনারি ব্লব গ্রহণ করে। এর মানে হল যে আপনি যদি স্ট্রাকচার্ড ডেটা এনক্রিপ্ট করতে চান, যেমন প্রোটোকল বাফার , আপনাকে প্রথমে ডেটা এনকোড করতে হবে।
একটি প্রোটোবাফ এনক্রিপ্ট করুন
এনক্রিপ্ট করতে:
- প্রোটোবাফকে একটি বাইট অ্যারেতে সিরিয়ালাইজ করুন।
- সিরিয়ালাইজড বাইট এনক্রিপ্ট করুন, তারপর সঞ্চয় করুন বা ফলিত সাইফারটেক্সট পাঠান। ব্যবহার করুন:
ডিক্রিপ্ট করতে:
- সাইফারটেক্সট ডিক্রিপ্ট করুন।
- ধাপ 1 সফল হলে, প্রোটোবাফকে ডিসিরিয়ালাইজ করুন।
টেম্পারিং থেকে একটি protobuf রক্ষা
বেশিরভাগ ক্ষেত্রে, একটি প্রোটোবাফ এনক্রিপ্ট করা একা প্রমাণীকরণের চেয়ে পছন্দনীয়।
একটি প্রোটোবাফকে টেম্পারিং থেকে রক্ষা করতে:
- প্রোটোবাফকে একটি বাইট অ্যারেতে সিরিয়ালাইজ করুন।
- ক্রমিক বাইট সাইন ইন বা প্রমাণীকরণ. ব্যবহার করুন:
- সিগনেচার (বা MAC) সহ সিরিয়ালাইজড বাইট একসাথে সংরক্ষণ করুন।
যাচাই করতে:
- সিরিয়ালাইজড প্রোটোবাফ এবং এর স্বাক্ষর (বা MAC) পান।
- স্বাক্ষর (বা MAC) যাচাই করুন।
- প্রোটোবাফকে ডিসিরিয়ালাইজ করুন।
মনে রাখবেন যে একটি বৈধ স্বাক্ষর বা MAC গ্যারান্টি দেয় না যে ডেটা সঠিকভাবে ফর্ম্যাট করা হয়েছে। ডেটা পার্স করে এমন একটি বাস্তবায়নের সবসময় আশা করা উচিত যে ডেটা দূষিত হতে পারে।
একাধিক ডেটা আইটেম রক্ষা করুন
একাধিক ডেটা আইটেম রক্ষা করতে, একটি সিরিয়ালাইজেশন পদ্ধতি ব্যবহার করুন। একটি প্রোটোবাফে সমস্ত ডেটা আইটেম যুক্ত করুন এবং উপরে বর্ণিত হিসাবে এটি এনক্রিপ্ট করুন (বা প্রমাণীকরণ করুন)।
এছাড়াও আপনি নিম্নলিখিত হিসাবে সিরিয়ালাইজ করতে পারেন:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
অবশেষে, ফলাফল বাইট অ্যারে এনক্রিপ্ট (বা প্রমাণীকরণ)।