繁体   English   中英

在iPhone上保护应用数据

[英]Secure App Data on iPhone

EDITED

好吧,抛开投票否定并不能真正帮助解决问题。 如果您没有任何有用的说法,并且您对此问题不感兴趣,只需更改页面即可。 如果你有想法,或者你只是对了解不同的方法感兴趣,那么即使它不完美或者只是一个实验的想法,你的评论也是受欢迎的。

问题:

我需要将应用程序数据存储在iPhone应用程序中。

我们最初使用经典的NSDocumentDirectory路径存储数据......但这种方法有多“安全”?

不考虑越狱设备(我现在对这个问题不感兴趣),似乎任何用户(在任何正版设备上)都可以使用简单的iPhone浏览软件导航到这个文件夹并弄乱内容,有效地破解它。

如果是这种情况,那么为了存储安全通用数据(在这种情况下不一定是密码),使用什么是最好的“地点”或“方法”。

即使在这些情况下,KeyChain是否也是正确的方式,还是有更好的/替代方式?

注意和核心问题:

我知道用密钥等加密和保护数据。我不是在谈论“混淆或保护他们的内容”

这里的问题是不同的。 所以让我们这样说吧:

“你怎么避免用户可以访问存储文件(数据,加密,sql文件,你喜欢的任何东西)的文件夹,并以任何方式搞砸它们(这可能是删除它们,复制它们,访问它们使用十六进制编辑器和修改值,无论如何)。

这不是他们用它做的事情 ,而是一个更严格的限制,以确保用户根本无法达到它们

谢谢

您可以使用加密算法来保护数据并保存在sqlite db或文档字典中的文件中。

请看这个应用程序 ,这个应用程序解释AES算法使用安全密钥加密或解密数据。

在应用程序中使用存储库AES256AndBase64中的Helper类,在所需文件中使用#import "NSString+AESCrypt.h"

使用AES256EcryptWithKey:AES256DecryptWithKey:方法加密/解密数据:

NSString* dummyString=@"Steve Job";

NSLog(@"Normal String- %@",dummyString);

NSString* encrypt_decrypt_Key=@"apple";

NSString *encryptString = [dummyString
                              AES256EncryptWithKey:encrypt_decrypt_Key];

NSLog(@"Encrypt String- %@",encryptString);

NSString *decryptString = [encryptString
                           AES256DecryptWithKey:encrypt_decrypt_Key];

NSLog(@"Decrypt String- %@",decryptString);

或者,如果您使用的是iOS 5及以上版本,请查看此博客

我不确定,但在删除你的iPhone中的应用程序后,键链值不会被删除。

加密是一种方法。 或者您可以尝试使用一些散列算法(如SHA或MD5)来散列数据。 散列后,将数据和散列数据保存到NSDocumentDirectory。 当您需要数据时,通过查看散列数据来检查其是否发生了变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM