c# - 预测加密字符串的长度

标签 c# .net encryption rijndaelmanaged

我正在使用它进行加密: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/

相关文章:

java - 十六进制到二进制字符串Java

python+加密: Encrypting session key using public key

c++ - 密码的客户端/服务器加密

c# - code beside 和 code behind 的区别

c# - 在 Table<> 上的 Lambda Where() 中使用联接的任何方法?

.net - Hasmorepages PrintPageEventArgs 属性到底有什么作用?

c# - 串口通讯积累了大量正在运行的线程

c# - 微软报告 : Setting subreport parameters in code

c# - 遍历 XML sql 插入

c# - 在 Web 和 Windows 应用程序的类库中使用 NHibernate