文字到文字加密

一般演算法是:

Encrypt

  • 通過編碼 TE(文字編碼)將 InputText 轉換為 InputBytes
  • 加密 InputBytesOutputBytes
  • 通過 BE二進位制編碼 ) 將 OutputBytes 轉換為 OutputText

Decrypt(反向 BE 和 TE 來自 Encrypt):

  • 通過編碼 BEInputText 轉換為 InputBytes
  • 解密 InputBytesOutputBytes
  • 通過 TEOutputBytes 轉換為 OutputText

最常見的錯誤是為 BE 選擇文字編碼而不是二進位制編碼,如果任何加密位元組(或任何 IV 位元組)超出範圍 0x20-0x7E(對於 UTF-8 或 ASCII),這是一個問題)。由於安全範圍小於位元組空間的一半,因此文字編碼成功的可能性非常小。

  • 如果加密後字串包含 0x00,則 C / C++程式可能會將其誤解為字串的結尾。
  • 如果基於控制檯的程式看到 0x08 它可能會刪除前一個字元(和控制程式碼),使得 InputTextInputText 值具有錯誤的值(和錯誤的長度)。