文字到文字加密
一般演算法是:
Encrypt:
- 通過編碼
TE(文字編碼)將InputText轉換為InputBytes。 - 加密
InputBytes到OutputBytes - 通過
BE( 二進位制編碼 ) 將OutputBytes轉換為OutputText。
Decrypt(反向 BE 和 TE 來自 Encrypt):
- 通過編碼
BE將InputText轉換為InputBytes。 - 解密
InputBytes到OutputBytes - 通過
TE將OutputBytes轉換為OutputText。
最常見的錯誤是為 BE 選擇文字編碼而不是二進位制編碼,如果任何加密位元組(或任何 IV 位元組)超出範圍 0x20-0x7E(對於 UTF-8 或 ASCII),這是一個問題)。由於安全範圍小於位元組空間的一半,因此文字編碼成功的可能性非常小。
- 如果加密後字串包含
0x00,則 C / C++程式可能會將其誤解為字串的結尾。 - 如果基於控制檯的程式看到
0x08它可能會刪除前一個字元(和控制程式碼),使得InputText的InputText值具有錯誤的值(和錯誤的長度)。