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