Encriptando y desencriptando string con node.js

Encriptando y desencriptando string con node.js

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