ios - 在哪里存储解密文件?

标签 ios objective-c encryption

我正在加密下载的文件并将它们保存在本地应用程序的文档目录中。

要阅读它们,您必须解密这些文件并临时存储一些文件。

我的顾虑是:

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/

相关文章:

objective-c - 方法困惑的线程安全

ios - 使用常规 UIViewController 分页解析查询

java - 密码保护加密 key ?

ios - 如何检测用户是否不允许位置更新

iphone - 如何禁用 MFSideMenu 类中某些 View Controller 的平移模式?

objective-c - 将分数离线排队以稍后提交到游戏中心的最佳方法?

c# - 如何使用 X509Certificate 和 AES-256 算法加密/解密文本

objective-c - 从 ObjectiveC 类引用 UIViewController

objective-c - 将 NSArray 与 NSMutableArray 进行比较,将 delta 对象添加到 NSMutableArray

encryption - 分解 RSA 128 位 key 长度需要多长时间?