2012-09-21 20 views

Respuesta

15

NSUserDefaults es bastante fácil de usar y almacena un valor por clave solamente. Pero aparentemente, no es un método muy seguro, ya que no hay encriptación.

Pero el llavero es seguro, aunque es un poco difícil de codificar. Puede consultar este enlace para utilizar el acceso a la llave.

http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code

también se puede utilizar esta biblioteca deviced por Simon

https://github.com/goosoftware/GSKeychain

espero que le ayuda !!

6

Cualquier cosa almacenada en NSUserDefaults puede abrirse y leerse (relativamente) fácilmente, ya sea en el dispositivo o en una copia de seguridad (no encriptada) en iCloud o en una Mac sincronizada.

Keychain, on the other hand, is meant for stuff like certificates and passwords. He vinculado un artículo titulado "Cómo no almacenar contraseñas en iOS", que también proporciona detalles un poco más útiles.

0

El llavero es una solución mucho mejor, porque es más seguro, pero de todos modos, si guardara este tipo de información en NSUserDefaults, sus usuarios no se sentirían diferentes. Si alguien piratea su dispositivo, podría obtener información de Keychain, lo mismo que obtendría información de UserDefaults. Entonces esta cuestión de seguridad es retórica. Pero de todos modos, ¡el buen estilo de programación es guardar esta información en el llavero!

0

Te recomendaría que uses Llaveros. Usando Keychain, puede almacenar su contraseña en forma cifrada. Eche un vistazo a la muestra de GenericKeychain de Apple.

NSUserDefaults es un poco menos seguro en comparación con Keychain. En los datos de NSUserDefaults se puede acceder fácilmente si se conoce la clave específica. Este no es el caso en Keychain.

También puede convertir NSUserDefaults a Llaveros. Eche un vistazohere.

+0

* En los datos de NSUserDefaults se puede acceder fácilmente si se conoce la clave específica. Este no es el caso en Keychain *. ¿Qué quiere decir con esto? – Honey

10

Puede ser útil observar que los datos de Keychain se mantendrán aunque se elimine su aplicación, pero los datos de NSUserDefaults desaparecerán con la aplicación (NSUserDefaults es parte del arenero de la aplicación, Keychain es un servicio independiente de la aplicación).

Cuestiones relacionadas