Преобразование NSUserDefaults в связку ключей?

Итак, NSUserDefaults довольно прост в использовании. Но, видимо, это не слишком безопасно - здесь нет шифрования. И, конечно же, клиент хочет, чтобы настройки приложения были безопасными, поскольку они содержат конфиденциальные данные.

Но цепочка для ключей безопасна, хотя трудно кодировать (очевидно). Так есть ли способ легко преобразовать код NSUserDefaults в код цепочки для ключей? Другими словами, я хочу сохранить настройки приложения в связке ключей. Или я лаю не на том дереве?

3 ответа

Оба приведенных ниже решения являются обертками вокруг KeyChain API. Используя их в категории NSUserDefaults, вы можете иметь чистый способ доступа и хранения паролей.

Для Mac OS X

Вы можете попробовать библиотеку EMKeyChain, которая дружественно оборачивает связку ключей. Если вам нужно хранить пароли, это так же просто, как NSUserDefaults.

Для iPhone

Существует простая обертка: простой код брелка для iPhone.

Для 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"];

Надеюсь это поможет!

Это очень просто сделать с помощью библиотеки PDKeychainBindings. Вот статья, которую я написал об этом недавно. Образец кода

Вместо этого

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

Использовать этот

PDKeychainBindings *bindings = [PDKeychainBindings sharedKeychainBindings];
[[[Model sharedModel] currentUser] setAuthToken:[bindings objectForKey:@"authToken"]];
Другие вопросы по тегам