我正在开发一个应用程序,它将从服务器下载一些图像并将其保存在用户的设备上。但我真正关心的是,其他应用程序或用户不应轻易访问这些图像。
一种方法可能是我的应用程序加密图像并将它们保存在文档目录中并在需要时对其进行解密,但我认为这会使图像加载到UIImageView
的速度相当慢。
有许多游戏不会将大量资源包含在他们的App-bundle中,以保持App-size的小型化,并在以后下载大量资源。
他们究竟在哪里保存这些资源?
他们如何保护它们不被轻易地从存储它们的目录中复制?
答案 0 :(得分:1)
可能是因为尝试保护用户的文件,最好的选择是使用AES加密它们并将它们保存在用户区,Documents或Library目录或其子目录中。
最好使用Common Crypto。如果RNCryptor适合你需要使用它,它使用Common Crypto引擎盖。否则,在SO上使用Common Crypto进行加密有大量示例代码。
密钥密钥应该是随机字节,就像iv一样,将密钥保存在Keychain中。在CBC模式下使用AES和PKCS7填充。
如果您真的希望获得良好的安全性,请聘请加密领域的专家,那么整体安全性并非易事。不要忘记服务器,并至少使用双因素身份验证。
解密时间应该不是问题,比来自服务器的速度快得多。