文字到文字加密
一般演算法是:
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
值具有錯誤的值(和錯誤的長度)。