文本到文本加密

一般算法是:

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 值具有错误的值(和错误的长度)。