Encriptación de contraseña de Android SQlite?

Así que tuve una idea para una aplicación de Android (sólo para aprender) ya que estoy empezando. Sería básicamente una aplicación que permite a su "almacén / bóveda" sus contraseñas que necesita recordar. Sin embargo, podría cifrar / descifrar a través de SQlite (que sería la mediana de almacenamiento). ¿Qué tipos de encriptación pueden hacer Android / SQlite3?

Probablemente desee utilizar el paquete javax.crypto de Android y almacenar los datos cifrados en las filas sqlite3.

Esto proporciona encriptación simétrica, permitiendo que su usuario ingrese una contraseña que desbloquearía el contenido de la base de datos cifrada con esa contraseña.

Utilizo apache commons Base64 para codificar la contraseña cifrada. Usted acaba almacenando la contraseña en el db como un Blob.

import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import org.apache.commons.net.util.Base64; private static SecretKey key; try { byte[] secretBytes = "secret key".getBytes("UTF8"); DESKeySpec keySpec = new DESKeySpec(secretBytes); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); key = keyFactory.generateSecret(keySpec); } catch (Exception e) { Log.e(Flashum.LOG_TAG, "DatabaseHelper " + e.toString()); } public byte[] encryptPassword(String userpw) { try { byte[] cleartext = userpw.getBytes("UTF8"); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] clearBytes = cipher.doFinal(cleartext); byte[] encryptedPwd = Base64.encodeBase64(clearBytes); return encryptedPwd; } catch (Exception e) { Log.e(Flashum.LOG_TAG, "DatabaseHelper " + e.toString()); } return null; } public String decryptPassword(byte[] userpw) { String pw = ""; try { byte[] encrypedPwdBytes = Base64.decodeBase64(userpw); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key); byte[] plainTextPwdBytes = cipher.doFinal(encrypedPwdBytes); pw = new String(plainTextPwdBytes, "UTF8"); } catch (Exception e) { Log.e(Flashum.LOG_TAG, "DatabaseHelper " + e.toString()); } return pw; } 
  • Consultar tabla con subclases-como las relaciones
  • Consulta de base de datos de Android ContentProvider varias tablas
  • Contactos de Android: Colocación / clasificación local incorrecta
  • Obtener todos los elementos alrededor de un determinado punto de la base de datos SQLite
  • Error al cambiar la configuración regional de db '/data/data/my.easymedi.controller/databases/EasyMediInfo.db' a 'en_US'
  • ¿Por qué utilizar sqlite Database en Android?
  • java.lang.NumberFormatException: Invalid int: "null"
  • Android MediaStore obtiene distintas carpetas de archivos de música
  • Android: niveles de aislamiento de transacciones SQLite (ORMLite)
  • Cómo convertir MDB a SQLite en Android
  • Ormlite leer Fecha como 'yyyy-MM-dd'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.