我想保護結構化資料

Tink API 會使用任意二進位 blob 做為輸入。這意味著,如果您想 加密結構化資料,例如 通訊協定緩衝區,您需要 先進行編碼

加密通訊協定緩衝區

加密方式:

  1. 將通訊協定緩衝區序列化到位元組陣列。
  2. 加密序列化位元組,然後儲存或傳送產生的密文。 您可以使用下列功能:

如何解密:

  1. 解密密文。
  2. 如果步驟 1 成功,請將 protobuf 還原序列化。

防範通訊協定緩衝區遭到竄改

在大多數情況下,加密通訊協定緩衝區在驗證時是比較適合單獨驗證。

如何防止通訊協定緩衝區遭竄改:

  1. 將通訊協定緩衝區序列化到位元組陣列。
  2. 簽署或驗證序列化位元組。您可以使用下列功能:
  3. 將序列化的位元組和簽章 (或 MAC) 一併儲存。

驗證方法:

  1. 取得序列化的 protobuf 及其簽章 (或 MAC)。
  2. 驗證簽章 (或 MAC)。
  3. 反序列化 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

最後,加密 (或驗證) 產生的位元組陣列。