Tengo el requisito de almacenar datos de clientes cifrados simétricamente en reposo en una base de datos. ¿Cuál es la última forma recomendada de hacer esto? Mi investigación me ha llevado a esto:
- Genera 8 bytes aleatorios para una sal
- Genere PBKDF2-HMAC-SHA1 usando OpenSSL con el salt # 1, la contraseña del cliente, 2 ^ 16 iteraciones y un tamaño de clave de 32
- Cifre los datos con AES-256-CBC usando OpenSSL usando la clave del # 2
- Cree un resumen HMAC / SHA1 utilizando OpenSSL de los datos cifrados del paso # 3 y la clave del # 2
- Almacene los datos cifrados y el resumen en la base de datos como dos campos separados o como un solo blob con los dos elementos concatenados juntos por un delimitador
- Ejecuta lo anterior a la inversa para descifrar