Generalidades

Cifrado de datos en Android Room DB | Autor: Nitin Verma | Junio ​​de 2021

Nidin Velma

Aprenda a cifrar / descifrar los datos de la base de datos escribiendo una capa encima de Room Dao

1*jl0FIRQraipyWaAER VAzQ

La biblioteca de Android Room es excelente y muy fácil de usar, pero no proporciona ninguna función para cifrar / descifrar datos (a partir de 2021). Entonces, en este artículo, compartiré un método que utilizo en muchos de mis proyectos para hacer esto agregando una capa de código antes de llamar al método Room Dao.Para este artículo, es un prerrequisitos Conoce Room Library y lo ha implementado en una de sus aplicaciones.

en breveAumentol Esto es lo que tenemos que hacer:
Desde nuestro código (básicamente el Repositorio), no llamaremos directamente al método Dao. Crearemos una nueva clase SecureDao. Esta clase será responsable de usar ciertas clases (como CryptoUtils) para cifrar / descifrar datos y llamar al método dao internamente.

Implementémoslo para un caso de uso muy básico. Suponga que desea insertar userId en una tabla de usuarios con solo dos columnas: key, userId.
Para ello, tendremos un método Dao muy básico a continuación. Canal de datos de usuario interfaz:

@Insert(onConflict = OnConflictStrategy.ABORT)
suspend fun insertUserId(userData: UserData)

Ahora estaremos en nuestro UserDataDaoSecure Class, en el constructor, tendremos userDataDao y cryptoUtils:

suspend fun insertLoginData(userDataEntity: UserDataEntity) 
userDataDao.insertUserId(encrypt(userDataEntity))
private fun encrypt(userDataEntity: UserDataEntity):UserDataEntity
userDataEntity.let
return UserDataEntity(
it.key, // no operation on this
cryptoUtils.encrypt(it.userId) // encrypt it
)

Ahora, desde su código o capa de repositorio, simplemente puede llamar a userDataDaoSecure.insertLoginData (userDataEntity)

Este es un truco simple que utilicé para cifrar / descifrar datos en la base de datos de Android. Para mejorarlo aún más, suelo implementar la interfaz de Dao en mi clase segura de Dao. Esto asegura que no importa qué métodos tenga en mi dao, debo implementarlos en mi clase secureDao.

Este es un ejemplo muy simple. Para ver su uso y el código en securityUtils, puede consultar este proyecto en github:

En este proyecto, utilicé exactamente el mismo proceso para cifrar / descifrar datos.

Safe-Box es una aplicación de Android de código abierto que puede almacenar de forma segura todos sus datos personales. Le invitamos a contribuir a este proyecto o hacer cualquier pregunta.

LEER  Las mejores funciones de Android 12 que hemos encontrado hasta ahora

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba