什么加密算法最适合小字符串?

时间:2010-06-16 07:01:55

标签: encryption

我有一个10-15个字符的字符串,我想加密该字符串。问题是我想尽可能获得最短的加密字符串。我还想将该字符串解密回原始字符串。

哪种加密算法最适合这种情况?

3 个答案:

答案 0 :(得分:9)

AES使用16字节的块大小;如果您的10-15个字符的限制是坚定的,它非常适合您的需求。 PKCS#11(IIRC)填充方案将向数据添加6-1个字节并生成恰好16个字节的输出。您实际上不需要使用加密模式(例如CBC),因为您只加密一个块。存在如何处理密钥的问题 - 总是存在如何处理加密密钥的问题。

如果您必须使用较短的数据长度来缩短字符串,那么您可能需要在CTR模式下考虑AES。这使用密钥和计数器生成一个字节流,该字节流与字符串的字节进行异或。它会使您的加密字符串与输入的明文字符串保持相同的长度。

您很难找到可靠地减少此类短字符串长度的通用压缩算法,因此在加密之前进行压缩几乎不是一种选择。

答案 1 :(得分:5)

如果它只是一个短字符串,你可以使用一次性的垫,这在数学上是完美的保密。

http://en.wikipedia.org/wiki/One-time_pad

请确保您不会多次使用该密钥。

答案 2 :(得分:1)

如果主要目标是缩短,我会寻找一个压缩库,它允许在公共字符串语料库上构建固定字典。
就个人而言,我没有相关经验,但我打赌LZMA可以做到这一点。

相关问题