Bah*_*ïka 6 .net c# vb.net encryption stream
我正在研究加密/解密文件的软件.我希望能够在加密后猜测数据的长度,但我不能使用CryptoStream.Length(它会抛出NotSupportedException).有什么方法可以猜测吗?
我正在使用RijndaelManaged(.Net Framework 4.0)
这说起来比我可以http://www.obviex.com/Articles/CiphertextSize.aspx好得多
从那里:
在最普通的情况下,密文的大小可以计算为:
CipherText = PlainText +块-(PlainText MOD块)
其中,CipherText,PlainText和Block分别指示密文,明文和加密块的大小。基本上,将所得的密文大小计算为扩展到下一个块的明文的大小。如果使用填充,并且明文的大小是块大小的精确倍数,则会添加一个包含填充信息的额外块。
假设您要使用Rijndael加密算法以128位(16字节)的块大小和PKCS#7填充来加密9位数的社会安全号码(SSN)。(出于说明的目的,假设在加密之前从SSN值中删除了破折号,因此“ 123-45-6789”变为“ 123456789”,并且该值被视为字符串,而不是数字。)如果将SSN中的数字定义为ASCII字符,则密文的大小可以计算为:
CipherText = 9 + 16-(9 MOD 16)= 9 + 16-9 = 16(字节)
请注意,如果纯文本值的大小是块大小的正整数倍,则包含填充信息的额外块将被附加到密文中。例如,如果要加密16位信用卡号(定义为16个字符的ASCII字符串),则密文的大小将为:
CipherText = 16 + 16-(16 MOD 16)= 16 + 16-0 = 32(字节)
| 归档时间: |
|
| 查看次数: |
2734 次 |
| 最近记录: |