5

因此,NSUserDefaults 非常易于使用。但显然,它并不太安全——没有加密。当然,客户希望应用程序偏好是安全的,因为它包含敏感数据。

但是钥匙串是安全的,虽然很难编码(显然)。那么有没有办法轻松地将 NSUserDefaults 代码转换为 Keychain 代码?换句话说,我想将应用程序首选项存储在钥匙串中。还是我在叫错树?

4

3 回答 3

3

以下两个解决方案都是 KeyChain API 的包装器。通过在 NSUserDefaults 类别中使用它们,您可以以干净的方式访问和存储密码。

对于 Mac OS X

您可以尝试以友好的方式包装钥匙串的EMKeyChain库。如果你需要存储密码,就像 NSUserDefaults 一样简单。

适用于 iPhone

有一个简单的包装:Simple iPhone Keychain Code

于 2010-05-19T21:31:23.840 回答
1

对于 iOS(可能还有 OS X),您可以使用我的GSKeychain库。示例用法:

// Store a secret
[[GSKeychain systemKeychain] setSecret:@"t0ps3kr1t" forKey:@"myAccessToken"];

// Fetch a secret
NSString * secret = [[GSKeychain systemKeychain] secretForKey:@"myAccessToken"];

// Delete a secret
NSString * secret = [[GSKeychain systemKeychain] removeSecretForKey:@"myAccessToken"];

希望这可以帮助!

于 2012-07-18T19:30:46.013 回答
0

使用 PDKeychainBindings 库非常简单。 是我最近写的一篇文章。示例代码

而不是这个

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[[Model sharedModel] currentUser] setAuthToken:[defaults objectForKey:@"authToken"]];

用这个

PDKeychainBindings *bindings = [PDKeychainBindings sharedKeychainBindings];
[[[Model sharedModel] currentUser] setAuthToken:[bindings objectForKey:@"authToken"]];
于 2013-09-21T11:15:04.363 回答