UTF-8 字符串的简单加密,其中结果为以 NULL 结尾的字符串



我想加密我发送到服务器上的客户端的内容(不一定是为了安全起见,只是为了防止有人轻易看到像Wireshark这样的数据)。

我正在寻找一种算法,其结果仍然是以 NULL 结尾的字符串,但可以非常快速轻松地解密回 utf-8 字符串。我使用的网络库只允许我将 NULL 终止的字符串发送到客户端,这就是原因。我正在使用带有可靠数据包的 UDP 库。

有哪些算法可以做这种事情?

谢谢

Xor 所有具有某个值(或其他字符串)的字节。

在发送数据之前,请将所有"\0"字符替换为0xff 0xfe,将所有0xff替换为0xff 0xff。(显然,您可以使用其他值)

接收数据时,反向处理 - 将0xff 0xff替换为 0xff,将 oxff 0xfe替换为 0。 然后用键进行异或。

或者,您可以对加密数据进行 base64 编码以处理字符。

如果要对数据进行加扰,可以查找执行 Base64 编码、ROT13HEX 编码的函数。

如果您需要密文与明文大小相同,则需要从 [1..255] 到 [1.255] 的字符映射,以便您可以执行以下操作

cipherbyte = ((clearbyte + keystreambyte) mod 255)+1

您确定 [1..255] 中的每个字符都有清晰的路径吗?

如果你不介意密文大于明文,那么你可以XOR(mod 256)并采用SigTerm建议的转义机制。

请注意,无论哪种情况,您都需要一些密钥流材料,并且必须决定一些密钥管理策略。 阅读流密码可能会给你一个好的开始,请记住,两次使用相同的密钥相当于一遍又一遍地使用相同的编码(不是很强)。

最新更新