【发布时间】:2012-07-06 19:33:42
【问题描述】:
加密字符串的最有效方法/密码学提供程序是什么,这会产生尽可能短的字符串。我们的目标是我们必须加密一个字符串,并且我们希望在加密后实现最短的字符串。
到目前为止,我们已经使用 Triple DES 和 Rijndael 进行了测试,两者都得到完全相同的加密长度。我也玩过更长和更短的键大小,但这也没有太大区别。
我不是密码学专家,所以我不知道是否有一些数学原因或解释为什么长度为 y 的字符串只能加密为长度 x - 希望听到您的专家意见。
【问题讨论】:
-
MD5 不是“加密”算法。无论输入的长度如何,所有散列函数都会产生相同长度的输出。此外,哈希是不可逆的(你不能“解密”它们)
-
您可能还想指定加密需要的强度。您可以将 +1 添加到所有 char 值,从技术上讲,这将被加密,并会产生与输入字符串长度相同的输出字符串 - 这将是非常糟糕的加密!
-
好点。 128 位应该是不错的起点。
-
ROT13 加密字符串与原始字符串长度相同。
-
most crypto methods return the encrypted string in base64- 不,大多数加密方法与 Base64 没有任何关系,或者大幅增加其输入的长度(禁止填充)。 Base64 只是一种使用受限的可打印字符集对任意二进制数据(例如加密例程的输出)进行编码的方法。如果您可以直接存储加密例程的二进制输出,则不必费心通过 Base64 运行它。
标签: c# .net encryption