olvido olvide encontrado desbloquear contraseña con computadora como iphone objective-c encryption sqlite3 passwords

olvide - Cifrado de campo de contraseña de iPhone SQLite



olvide la contraseña de mi iphone 6 (2)

Buenas tardes chicos y chicas,

Espero que esta sea una pregunta rápida y fácil.

Estoy construyendo una aplicación que requiere que el usuario ingrese sus datos de inicio de sesión para un servicio en línea al que se vincula. Se pueden agregar y guardar múltiples detalles de inicio de sesión ya que el usuario puede tener varias cuentas de las que le gustaría cambiar.

Estos detalles se almacenarán en una base de datos SQLite y contendrán sus contraseñas. Ahora las preguntas son:

1: ¿Deben encriptarse estas contraseñas en la base de datos? Mi instinto me decía que sí, pero no sé qué tan seguro es el dispositivo y el sistema, y ​​si es necesario.

2: si deberían encriptarse, ¿qué debería usar? Creo que cifrar todo el archivo de la base de datos suena un poco exagerado, así que ¿debería encriptar la contraseña antes de guardarla en la base de datos? Si es así, ¿qué podría usar para lograr esto? He encontrado referencia a una "cripta (3)", pero tengo problemas para encontrar mucho al respecto o cómo implementarlo.

¡Espero ansiosamente tus respuestas!

EDITAR: Como verán en la respuesta y los comentarios elegidos, KeyChain es lo que hice. Cualquiera que esté interesado en usarlo, aquí hay algún código fuente útil:

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


1) Sí. Las contraseñas deben estar encriptadas.

2) Debe encriptar la contraseña a la base de datos. ¿Tiene que reutilizar las contraseñas en otro lugar una vez que están almacenadas, o solo las está utilizando como una verificación de las credenciales de inicio de sesión que el usuario proporciona?

Si solo los está usando como verificación, puede usar una función de hash unidireccional como MD5 o SHA-1 o algo por el estilo (con algunos caracteres aleatorios introducidos).

De lo contrario, debe usar algún método de encriptación reversible para recuperar sus valores almacenados. Consideraría usar el llavero si es posible. Es algo que Apple ofrece a los desarrolladores, por lo que es su responsabilidad cumplir con la exportación.

EDITAR

Además, es posible que desee consultar este enlace si se dirige a la última ruta. Incluye una @category en los comentarios en NSMutableData que le permite evitar tener que completar un formulario de CCATS:

http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html


No implemente su propia criptografía; solo usa el llavero.