在块中使用AES C#加密文件

时间:2017-08-17 13:07:29

标签: c# encryption aes chunking

我正在尝试使用AES加密在C#中以块的形式加密和解密文件。

目前,它以1000字节的块读取文件,加密每个块,并以{IV}{Chunk0}{Chunk1}{Chunk2}...的格式写入文件(没有任何分隔字符,没有花括号)。

解密文件时,会从文件中读取前16个字节,将其用作AES IV ,然后以块的形式解密文件的其余部分。

我的问题是,如何知道要解密的每个加密块的大小?加密时,每个块由1000个字节的纯文本组成,但是当它加密时,这1000个长度会发生变化。

我应该在每个块之间使用分隔符,例如逗号吗?或者我是否可以避免在块之间使用分隔字符,而是通过读取x个字符的块来解码? (如上所述,如果每个加密的块是1000字节的加密纯文本,我是否可以计算每个加密块的大小?)

1 个答案:

答案 0 :(得分:0)

最简单的?加密每个块时,获取字节长度,然后将其存储在文件中:

{IV}{LengthOfEncryptedChunk}{EncryptedChunk}{IV}{LengthOfEncryptedChunk} ... etc