文本到文本加密
一般算法是:
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
值具有错误的值(和错误的长度)。