poner - Almacenamiento de contraseñas en aplicaciones de iPhone
contraseña para aplicaciones iphone gratis (3)
Esto es exactamente para lo que Apple desarrolló el llavero. Usando Keychain, puede almacenar su contraseña en forma encriptada. Eche un vistazo a la muestra GenericKeychain de Apple.
Tengo una aplicación simple, basada en la plantilla "Aplicación de utilidad". Recupera un archivo XML protegido con contraseña (a través de NSXMLParser).
Quiero permitir que el usuario establezca un nombre de usuario y una contraseña en "FlipsideView", ¿cómo podría hacerlo?
Tengo los conceptos básicos en su lugar, los dos cuadros UITextField, cuyo valor se establece en un valor fijo cuando se carga la vista (utilizando el método viewWillAppear
), y NSLog''d cuando la vista se cierra (el NSLog
es solo para pruebas, obviamente, en el método viewWillDisappear
)
¿Cómo almaceno los datos? He NSUserDefaults
un vistazo a la documentación del desarrollador, y parece que debería estar usando NSUserDefaults
..?
Estoy de acuerdo con Ben. Esto es exactamente para lo que es el llavero.
En ningún caso, simplemente almacenaría las contraseñas en los valores predeterminados como sugiere dbr. Esto es altamente inseguro. En esencia, estás almacenando tus contraseñas al aire libre.
Además del código de muestra de Apple, también recomiendo el código de Buzz Anderson''s Keychain: iPhone Keychain Code
Aha, NSUserDefaults parece funcionar, y es simple de usar, pero no es seguro en lo más mínimo :
password
es IBOutlet para UITextField.
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *pword = [prefs objectForKey:@"password"];
password.text = uname;
}
- (void)viewWillDisappear:(BOOL)animated{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:password.text forKey:@"password"];
}
La contraseña se almacena en texto plano en un plist, por lo que sería bastante fácil para que otra persona acceda ... pero esto es útil para almacenar configuraciones no confidenciales.
Terminé usando esto para almacenar el campo de nombre de usuario , y almacené la contraseña usando el código de llavero SFHFKeychainUtils de la respuesta de agosto.