我正在考虑编写一个应用程序来加密许多文件,然后刻录到光盘。我用truecrypt刻录了一张光盘,并且在卷有坏扇区时复制好文件时遇到问题(https://serverfault.com/questions/48839/backup-on-disc-using-truecrypt-corruption-problem)。我没有做复杂的应用程序,也不想替换truecrypt并拥有虚拟驱动器/文件。
想法是加密每个文件。也许没有填充,所以每个文件大小相同。有些文件很小(1-8字节,10字节20kb等),我可能有数千个文件类型(png,pdf,doc等)。我正在考虑使用盐渍键“SomethingVeryLongWithAtLeast32CharatersOrMaybeMore”+用户密码。使用AesCryptoServiceProvider。 (可选)加密文件名。我不知道如何使用合法的ascii名称加密它,特别是当使用nonascii但我认为可能生成一个随机唯一编号并将原始文件名存储在文件中可能是一个很好的解决方案。
我不知道加密许多文件,尤其是使用相同密钥的已知标头/模式加密是不是很糟糕。我认为应用程序可以生成许多密钥然后加密文件中的密钥并对每个文件的密钥进行查找(或者在X多个文件之间共享密钥)。但也许这只是浪费,因为加密应该是安全的,即使有已知的字节?
我希望这个应用程序是跨平台的。什么是我可能陷入的安全陷阱(小文件?许多文件?带有已知标题的小文件?已知文件?)以及跨越C#.NET平台陷阱可能会使它与linux(和mac)不兼容
答案 0 :(得分:2)
在开始使用自己的文件加密应用程序之前,在将TrueCrypt卷写入光盘或使用其他内容(如7Zip)备份和加密文件之后,确认TrueCrypt卷是否正常并不容易?