我正在加密下载的文件并将它们保存在本地应用程序的文档目录中。
要阅读它们,您必须解密这些文件并临时存储一些文件。
我的顾虑是:
1.如果我在使用它们的时候将它们存储在 doc 目录中,那么在那个时间窗口中,可以使用 iExplorer 等工具获取这些文件。
2.我的想法是在使用时将它们存储在内存中,并在使用后刷新保管库。 此选项适用于小文件,但对于大文件(例如 50 MB 或 100 MB 的视频),恐怕应用会收到内存警告,结果会突然终止。
我想知道执行此操作的最佳方法。
最佳答案
没有以安全方式存储本地文件的完美安全措施。如果一个人可以完全访问设备,他总能找到解密文件的方法,只要您的应用程序能够解密它。
唯一的问题是:解密文件需要多少努力?
如果您唯一担心的是有人可能会使用 iExplorer 复制和打开这些文件,那么简单的本地对称加密就可以解决问题。
只需在您的应用程序中嵌入一个随机对称 key ,并在您下载数据时逐 block 加密数据。
您可以使用舒适的“Security Transforms”框架来进行对称加密。 Apple Documentation 中有一些很好的例子.
当您加载文件时,您可以使用与从文件系统加载它们时相同的 key 来解密它们。
澄清一下:这不是对文件的完美保护。但是要解密文件,可以访问您的应用程序二进制文件。在调试器中分析此二进制文件并搜索解密部分以提取您的对称 key 。仅解密文件就需要付出很多努力。
关于ios - 在哪里存储解密文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022583/