Puedes descargar el proyecto desde este enlace
El otro día surgió una necesidad para encriptar contenido bajo el algoritmo AES y es la que te vengo a mostrar a continuación en la cual use Node para solventar mi necesidad. Pude haber usando cualquier lenguaje que me viniera en gana pero no quería instalar nada mas.
Dependencias:
- NodeJS >= 12
- Crypto-JS
Aplicaciones recomendadas:
- Git bash
- Visual Studio Code
Lo primero que necesitamos es tener una clave única (KEY) y un vector de inicialización (IV). Este ultimo no es necesario pero agrega un extra de seguridad a nuestro contenido. Para lo cual usaremos el bash de git para utilizar openssl
KEY
openssl rand -base64 24
IV
openssl rand -base64 12
Ahora que ya tenemos estas 2 cadenas únicas. Podemos proceder a escribir nuestro código.
npm init -y
Luego hacemos una modificación en el package.json para que admita módulos
"type": "module",
Instalamos la dependencia de Crypto-JS
npm i crypto-js --save
Ahora importamos los objetos necesarios para interactuar en nuestro archivo por defecto (en mi caso he creado a app.js)
import pkg from 'crypto-js';
const { enc, AES, mode: _mode, pad } = pkg;Creamos las constantes de KEY e IV y les asignamos los valores que nos dio el bash de Git
const KEY = enc.Utf8.parse('cTY/OJukmaVM4w4UxiUI4cTYq2QGDB8c');
const IV = enc.Utf8.parse('gqeSw9OvjqA3kmGP');Ahora crearemos las 2 funciones necesarias para trabajar con el encrypt y el decrypt de los datosfunction encrypt(data) {
const encrypted = AES.encrypt(data ? data : '', KEY, {
iv: IV,
mode: _mode.CBC,
padding: pad.Pkcs7
});
return encrypted.toString();
}
function decrypt(data) {
const encrypted = AES.decrypt(data ? data : '', KEY, {
iv: IV,
mode: _mode.CBC,
padding: pad.Pkcs7
});
return encrypted.toString(enc.Utf8);
}Y listo ya esta la base de nuestro aplicativo, ahora ya podemos utilizarlas dentro de un log para probar
console.log(encrypt("Hola Mundo"));Y similar para el decrypt del contenido
console.log(decrypt("11qK1NkKJpOR0DG6BOjIvA=="));Espero te haya gustado el ejemplo, su utilidad puede ser tan compleja como te imagines, desde el simple texto mostrado en este ejemplo o como la creación de archivos encriptados

Comentarios
Publicar un comentario