Разработка приложения, в котором несколько пользователей будут использовать одно и то же устройство и которое будет работать в автономном режиме. Найдена оболочка цепочки для ключей. Но настоящая проблема заключается в том, как управлять несколькими паролями пользователей в цепочке для ключей? У меня есть база данных sqlite для хранения всех зарегистрированных имен пользователей. Как лучше всего управлять паролем? И как ?
Как управлять паролем в iOS?
comment
знайте, что брелок не является полностью безопасным. Если устройство взломано, то кто-то может получить доступ к цепочке ключей в открытом виде. Если вы собираетесь использовать связку ключей, вам также следует реализовать обнаружение джейлбрейка.
- person SpyMachine   schedule 12.06.2013
Ответы (3)
Вы можете хранить пароли в связке ключей.
Создайте словарь, который содержит имя пользователя в качестве ключей и пароли в качестве значений. Вы можете сохранить этот словарь в элементе цепочки для ключей, чтобы безопасно хранить все пароли.
person
Amit
schedule
12.06.2013
Вы можете использовать обертку SFHFKeychainUtils и хранить разные пароли для разных сервисов.
Вы сохраняете пользователя в NSUserDefaults для каждой службы, а затем сохраняете и извлекаете пароль с помощью параметра serviceName.
[SFHFKeychainUtils storeUsername:name andPassword:secret forServiceName:serviceName updateExisting:YES error:&error];
person
gillyD
schedule
12.06.2013
Взгляните на этот проект с открытым исходным кодом на github. , получение паролей, установка паролей и удаление паролей.
Вставьте пароль в связку ключей:
NSError *error;
[SSKeychain setPassword:@"password"
forService:@"example_name"
account:@"account1"
error:&error];
В вашей ситуации я бы изменил переменную учетной записи для вашего второго пароля.
Чтобы восстановить пароли:
NSError *error;
NSLog(@"password1 is %@", [SSKeychain passwordForService:@"example_name" account:@"account1" error:&error]);
NSLog(@"password2 is %@", [SSKeychain passwordForService:@"example_name" account:@"account2" error:&error]);
person
Shams Ahmed
schedule
12.06.2013
Это был бы простой подход, если бы вы хотели использовать класс Obj-c и не хотите входить в c api, однако, если вы решите, что хотите перейти в маршрут c api или даже изменить SSKeyChain, взгляните на kSecClassGenericPassword и kSecClassInternetPassword. Объект KeyChain хранится в словаре, поэтому ключи должны быть уникальными, но если вас двое, создайте два типа ключа, один общий, а другой интернет-пароль, который позволит использовать два пароля в одной цепочке ключей.
- person Shams Ahmed; 14.06.2013