如何将多个文件加密和解密为一个文件?

时间:2018-07-11 08:47:51

标签: c# encryption compression data-processing file-structure

作为标题, 我想将10个文件加密为一个文件,并且可以自定义扩展名文件。加密后,我将自动对其进行解密,以创建10个原始文件。有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

就像无法识别消息的任何其他流一样,您需要某种定界符。将材料的长度放在首位是这样做的常见方法。

因此组成一个文件格式规范,例如:

  • uint32开始文件,该文件指定存档中的文件数
  • 然后,每个文件:
    • 用您要使用的编码写一个uint32来指定文件名长度(以字节为单位)(我会使用UTF-8)
    • 写文件名的字节
    • 写一个uint32来指定文件数据长度
    • 写文件数据

然后在读取文件时,读取uint并提取下一个字节。

但是您通常不想发明自己的文件格式。

答案 1 :(得分:0)

可能的解决方案

  • 加密所有文件
  • 将加密的数据(byte[])存储在List<byte[]>中,或将其分别存储在临时文件中(也许是file.oldext.newext.tmp)
  • 创建一个新的XML文件,将所有数据写入其中(在XML文件中创建一个列表,并将数据存储在列表元素中;每个文件一个元素)
  • 将XML文件保存到磁盘(newfilename.newext)