根据我在 iOS 设备上阅读的有关磁盘加密的Apple 文档和其他文档,似乎为了利用设备的高级加密,用户必须启用密码,以便当您使用 NSDataWritingFileProtectionComplete 属性时将加密。
如果用户没有设置密码但我仍想确保文件已加密怎么办?这种情况有哪些选择?
谢谢!跳蚤
iOS包含多个用于加密数据的API 。自动磁盘加密是用户选择的选项,允许用户加密写入设备辅助存储的所有数据。如果无论用户是否选择打开该选项,您都需要加密您的数据,请使用提供的选项之一自行加密数据。
除非您真的知道自己在做什么(即使您认为自己知道,也可能不知道),通常最好使用提供的 API,您可以期望这些 API 已经由专家编写和审查。
如果您计划在美国境外分发您的应用程序并使用加密,则必须遵守美国商务局的限制。如果您使用 Apple 提供的 API 并且仅使用加密来保护您的内容,您将能够在国际上分发您的应用程序(根据 Apple 的 iTunesConnect 常见问题解答。)
但是,如果您自己编写加密,则必须通过美国政府的审查程序。
我已经编写了不止一个应用程序来加密服务器上的内容,因此即使在将其下载到设备后也可以对其进行保护。
即使 Apple 的加密也无法阻止某人进行未加密的备份或将设备安装为文件系统并获取您的应用程序可能已下载的媒体文件。
因此,为了保护您的内容,您必须自己对其进行加密。而且,您只能在 ram 中解密它,而不是作为闪存中的临时文件(可以从设备复制)。这使得提供加密电影和 PDF 有点挑战。我使用解密网络服务器线程;但是,还有更现代的方法,包括可能效果更好的文件级委托方法。