Creación de la aplicación
mkdir encrypt-decrypt && cd encrypt-decrypt
npm init -y
Instalación de librería crypto
npm i crypto
Instanciar librería
const crypto = require('crypto');
Creación de variables globales
const secretKey = 'dnlBQiAjEJ8k6cXPJtZjxc1LB7uvzEZF';
const algorithm = 'aes-256-cbc';
para la generación de la secretKey pueden utilizar este generador online https://randomkeygen.com/
Encriptar string
const encryptData = (plainText) => {
const keyBuffer = crypto.scryptSync(secretKey, 'salt', 32);
const iv = Buffer.alloc(16, 0);
const cipher = crypto.createCipheriv(algorithm, keyBuffer, iv);
let res = cipher.update(plainText, 'utf8', 'hex');
res += cipher.final('hex');
return res;
};
Desencriptar string
const decryptData = (encryptText) => {
const keyBuffer = crypto.scryptSync(secretKey, 'salt', 32);
const iv = Buffer.alloc(16, 0);
const decipher = crypto.createDecipheriv(algorithm, keyBuffer, iv);
let res = decipher.update(encryptText, 'hex', 'utf8');
res += decipher.final('utf8');
return res;
};
llamado a las funciones
const resEncrypt = encryptData('texto de prueba');
console.log(resEncrypt);
const resDecrypt = decryptData(resEncrypt);
console.log(resDecrypt);
Ejecutar la aplicación
node index.js