我正在加密下载的文件并将它们保存在app的文档目录中.
我担心的是:
1.如果我将它们存储在doc目录中一段时间它们被使用,那个时间窗口就可以使用像iExplorer这样的工具来获取这些文件.
2.我的想法是将它们存储在内存中以供使用时间,并在使用后冲洗保险库.
此选项适用于小文件,但对于大文件说50 MB或100 MB的视频,我担心应用程序将收到内存警告,结果将突然终止.
我想知道这样做的最佳方法.
解决方法
没有完美的安全性以安全的方式存储本地文件.如果一个人可以完全访问该设备,只要您的应用程序能够解密它,他总能找到解密文件的方法.
唯一的问题是:解密文件需要多少努力?
如果你唯一关心的是一个人可以使用iExplorer来复制和打开这些文件,那么简单的本地对称加密就可以解决问题.
只需在应用程序中嵌入随机对称密钥,并在下载时逐块加密数据.
您可以使用舒适的“安全转换”框架来执行对称加密. Apple Documentation中有一些很好的例子.
加载文件时,可以使用相同的密钥在从文件系统加载文件时对其进行解密.
只是为了说清楚:这不是文件的完美保护.但要解密文件,可以访问您的应用程序二进制文件.在调试器中分析此二进制文件并搜索解密部分以提取对称密钥.为解密文件需要付出很多努力.