我正在使用它进行加密:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx
有什么方法可以预测加密文本的外观吗?我正在将加密输出转换为文本,以便将其存储在数据库中。
我只想确保数据库列的大小足够大。
我将文本输入限制为 20 个字符。
最佳答案
您使用的是 SQL Server 2005 或更高版本吗?如果是这样,您可以只使用 VARCHAR(MAX)
或 NVARCHAR(MAX)
作为列类型。
如果你想更精确一点...
RijndaelManaged
的最大块大小为 256 位(32 字节)。
您的最大输入大小为 20 个字符,因此即使我们假设最坏情况下每个字符 4 个字节,也只会达到 80 个字节,然后将填充到最多 96 个字节加密过程。
如果您对加密输出使用 Base64 编码,将从 96 个加密字节创建 128 个字符。如果您使用十六进制编码,那么将从 96 个加密字节创建 192 个字符(如果您在十六进制字符串前加上“0x”,则可能还有几个额外的字符)。在任何一种情况下,200 个字符的列宽都应该给您足够的空间。
(注意:这些只是我的头脑中的计算。我还没有验证它们是否真的正确!)
关于c# - 预测加密字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1492421/