Мне нужно реализовать автономный вход в моем приложении. В настоящее время я храню пароли в цепочке ключей, которые были использованы для входа в систему хотя бы один раз, когда приложение подключено к сети. прямо сейчас я не проверяю комбинацию паролей пользователей. Если у меня есть несколько пользователей для одного устройства, для хранения только паролей будет недостаточно. Так может ли кто-нибудь из вас предложить что-то, что можно сделать без каких-либо нарушений безопасности.Как мы можем сохранить комбинацию имени пользователя и пароля в keychain в зашифрованном формате
ответ
Я предлагаю вам хранить пароль, используя логин в качестве ключа. что-то вроде: [email protected]/password
.
Вы можете закодировать значение пароля md5
для повышения безопасности слишком
вы можете использовать NSURLCredential зависит от этого link
магазина
NSURLCredential *credential;
credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistencePermanent];
[[NSURLCredentialStorage sharedCredentialStorage] setCredential:credential forProtectionSpace:self.loginProtectionSpace];
Получить хранилище данные
NSURLCredential *credential;
NSDictionary *credentials;
credentials = [[NSURLCredentialStorage sharedCredentialStorage] credentialsForProtectionSpace:self.loginProtectionSpace];
credential = [credentials.objectEnumerator nextObject];
NSLog(@"User %@ already connected with password %@", credential.user, credential.password);
Вы можете сохранить его в брелоке устройства, которые предназначены для сохранения конфиденциальной информации. Загрузить обертку из этого Ray Wenderlich tutorial и шифровать пароль с SHA512
#import "KeychainWrapper.h"
#include <CommonCrypto/CommonDigest.h>
-(void)createSHA512andSaveToKeychain:(NSString*)unencryptedPasswd {
const char *passwdBytes= [unencryptedPasswd cStringUsingEncoding:NSUTF8StringEncoding];
NSData *passwordData = [NSData dataWithBytes:passwdBytes length:unencryptedPasswd.length];
uint8_t digest[CC_SHA512_DIGEST_LENGTH];
CC_SHA512(passwordData.bytes, passwordData.length, digest);
NSMutableString *encryptedPasswd= [NSMutableString stringWithCapacity:CC_SHA512_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) {
[encryptedPasswd appendFormat:@"%02x", digest[i]];
}
// Save the password in the device keychain
KeychainWrapper *keychainWrapper = [[KeychainWrapper alloc] init];
[keychainWrapper mySetObject:encryptedPasswd forKey:(__bridge id)kSecValueData];
[keychainWrapper writeToKeychain];
}
Для получения пароля:
// Retrieve the pwd from the device keychain
KeychainWrapper *keychainWrapper = [[KeychainWrapper alloc] init];
NSString *pwd = [keychainWrapper myObjectForKey:@"v_Data"];
Можно ли совместить полученный пароль с правильным именем пользователя? У меня несколько пользователей для одного и того же устройства. – iOSManiac
Да. Если вам нужно хранить несколько паролей (и имена пользователей), вам понадобится другая оболочка от Apple. См. Эту ссылку: http: //devmonologue.com/ios/ios/storing-sensitive-information-in-the-iphones-keychain/. В принципе, вы инициализируете класс keychain с помощью инициализатора, специфичного для пользователя, с использованием метода initWithIdentifier:. – Alex
- 1. Получить пароль Keychain в зашифрованном формате
- 2. Как проверить комбинацию имени пользователя и пароля в OS X?
- 3. Как сохранить имя пользователя и пароль в keychain
- 4. LDAP - Как проверить комбинацию имени пользователя и пароля?
- 5. Сохранение имени пользователя и пароля в текстовом формате
- 6. Как мы можем аутентифицировать пользователя с помощью имени пользователя и пароля
- 7. Как мы можем использовать комбинацию NSThread и NSNotification?
- 8. Использование keychain для хранения имени пользователя и пароля в xcode 4
- 9. Как аутентифицировать имя пользователя и пароль с помощью keychain
- 10. Безопасность помимо имени пользователя/пароля?
- 11. Шифрование имени пользователя и пароля
- 12. Аутентификация имени пользователя и пароля
- 13. Можем ли мы настроить связь JMS без имени пользователя и пароля?
- 14. Очистка Gem, создающая пароль для входа пользователя в зашифрованном формате
- 15. Проверка имени пользователя и пароля
- 16. Генератор имени пользователя и пароля
- 17. Обход имени пользователя и пароля в отчетах
- 18. как мы можем сохранить файл в качестве временной основе
- 19. Ошибка имени пользователя и пароля в PHP
- 20. Проверка имени пользователя и пароля в C#
- 21. Проверка имени пользователя и пароля в android
- 22. Защита имени пользователя и пароля, встроенного в приложение Java Desktop
- 23. Как мы можем сохранить java-файл без имени
- 24. Как мы можем сохранить pdf в mysql
- 25. Сохранение нескольких учетных записей имени пользователя и паролей в keychain
- 26. Как мы можем определить тип пароля
- 27. Как проверить регистрацию имени пользователя и пароля?
- 28. Сохранение комбинации имени пользователя и пароля
- 29. Проблема при проверке имени пользователя и пароля пользователя
- 30. Брелок для хранения и чтения имени пользователя и пароля
Do инь хотят помнить всех пользователей или только последний? – CZ54
@bobby: нужно помнить всех пользователей – iOSManiac
Поэтому я предлагаю вам сохранить пароль, используя логин в качестве ключа. что-то вроде: [email protected]/password. Вы можете закодировать значение md5 кода доступа, чтобы повысить безопасность тоже – CZ54