我正在编写一个C#类,它读取文件并使用Rijndael算法进行加密。
在测试600MB的文件时,我得到了OutOfMemoryException,所以我计划以10MB的小块读取该文件。现在的问题是,对于其字节被加密为小块的文件,解密过程失败。
我的问题是,Rijndael加密是否支持加密小块数据?
发布于 2010-07-21 19:17:03
Rinjadel是一种基于块的加密系统,因此它只处理小块数据--一次128位。可以将一个块的输出用作下一个块的输入。
我认为,问题可能出在您的实现中,而不是加密方法。
发布一些代码会有所帮助。
一般来说,你的实现应该是:
while (read 128bits from input)
{
transform
write 128 bits to output
}
if encrypting
write number of bits remaining
read remaining data
pad to 128 bits
transform
write 128 bits
else
read number of bits left
read 128 bits
transform
write number of bits left bits
发布于 2010-07-21 19:13:38
是的,它是有效的,并且您应该使用CryptoStream类。
https://stackoverflow.com/questions/3298486
复制相似问题