从设备获取NSUSerDefaults数据

时间:2010-08-19 05:19:18

标签: iphone security encryption ios4 nsuserdefaults

我创建了一个应用程序,其中我使用了base64编码并将用户密码保存到NSUSerDefaults中,但不知何故,另一个iPhone开发人员破坏了该密码。我想知道他怎么能获得NSUserDefaults数据?有人知道如何阻止这个关键的事情以及他如何获得NSUserDefaults数据。另外,在iphone中存储用户密码的最佳加密方法是什么?

4 个答案:

答案 0 :(得分:2)

我建议您查看SFHFKeychainUtils。它包装了Keychain Services API,并提供了一个非常简单的界面来存储密码等敏感信息。

存储密码:

NSError * error;
[SFHFKeychainUtils storeUsername:userName andPassword:password forServiceName:@"whatever_service" updateExisting:YES error:&error];

取回密码:

NSError * error;
password= [[SFHFKeychainUtils getPasswordForUsername:userName andServiceName:@"whatever_service" error:&error] retain];

如果您需要将用户注销,也可以使用 deleteItemForUsername 消息清除存储的值。

答案 1 :(得分:2)

  

钥匙串是加密容器   持有多个密码   应用程序和安全服务。   钥匙串是安全存储   容器,这意味着当   钥匙串已锁定,无人可以访问   受保护的内容。 - Keychain Services Programming Guide,Apple 2010。

我建议您阅读Keychain Services Tasks for iOS

答案 2 :(得分:0)

有人监禁iPhone的人对设备的控制力比你更多。没有隐藏秘密的地方,不是在闪存盘上,而是在内存中。在构建服务器时,应始终假设攻击者可以连接恶意客户端。期末。

答案 3 :(得分:0)

具有物理访问权限的攻击者可以创建一个iPhone备份,其中包括大多数数据文件的完全未加密的副本。