我创建了一个应用程序,其中我使用了base64编码并将用户密码保存到NSUSerDefaults中,但不知何故,另一个iPhone开发人员破坏了该密码。我想知道他怎么能获得NSUserDefaults数据?有人知道如何阻止这个关键的事情以及他如何获得NSUserDefaults数据。另外,在iphone中存储用户密码的最佳加密方法是什么?
答案 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。
答案 2 :(得分:0)
有人监禁iPhone的人对设备的控制力比你更多。没有隐藏秘密的地方,不是在闪存盘上,而是在内存中。在构建服务器时,应始终假设攻击者可以连接恶意客户端。期末。
答案 3 :(得分:0)
具有物理访问权限的攻击者可以创建一个iPhone备份,其中包括大多数数据文件的完全未加密的副本。