文件内加密文件系统

时间:2016-12-12 10:49:18

标签: c++ c encryption filesystems

我在分发应用程序时遇到问题。我需要向我的应用程序分发一些数据,为了保留它,我想要一个文件内文件系统,可跨平台移植,加密

基本上,我想尽可能舒适地在运行时加载这些文件,例如迭代目录。

我可以使用zlib,但即使是加密档案也可以在没有密码的情况下进行分析:我可以看到拉链内部,但不能提取文件,我想避免使用。

任何提示?

1 个答案:

答案 0 :(得分:1)

AFAIK“常规”Zip没有加密文件名的选项。

7-zip(LZMA)有这样一个选项,所以你可能会试着去研究这个方向。不确定是否有可移植的VFS(虚拟文件系统)实现,因为zlib就是这种情况(你可以在这里查看:https://github.com/figment/JA2-1.13/tree/master/Build/ext/VFS

或者,您可以在应用程序中自己“加密”文件名(即文件名将在存档中加密插入,应用程序将透明地解密它们)。但是7-zip的优点是,如果文件名是加密的,那么在没有提供正确密码的情况下它根本不会列出任何内容。

另一种可能性是使用TrueCrypt文件容器(虽然我不知道任何SDK,但是有完整的TrueCrypt源代码可用,所以我想应该可以通过一些努力将它集成到应用程序中)。