Requisitos
Primero debes iniciar el proyecto de npm con npm init -y y luego deberás instalar la dependencia de crypto-js con npm i --save crypto-js
Ahora crea un archivo llamado cfrf.js y pega el siguiente código en el archivo.
const CryptoJS = require('crypto-js');
function encryp(data, key){
return CryptoJS.AES.encrypt(data, key).toString();
}
function decryp(data, key){
var wA= CryptoJS.AES.decrypt(data, key);
return wA.toString(CryptoJS.enc.Utf8);
}
const args= process.argv;
if(args.length<7){
console.log(`Uso: node cfrf.js <file-input> <op ['enc' || 'des']> <pass> <deep> <file-out>\n\n
Ejem: node cfrf.js texto.txt enc clave_secreta 3 texto.txt.cfr`);
return;
}
var file_inp= args[2];
var op= args[3];
var pass= args[4];
var deep= args[5];
var file_out= args[6];
var fs = require('fs');
var binary = fs.readFileSync(file_inp);
var buffer=null;
if(op=='enc'){
let base64data = binary.toString('base64');
let enc=base64data;
for (let i = 1; i <= deep; i++) {
enc= encryp(enc, pass);
}
buffer = Buffer.from(enc, "utf-8");
}else if(op=='des'){
let dataS= binary.toString("ascii");
let dec=dataS;
for (let i = 1; i <= deep; i++) {
dec= decryp(dec, pass);
}
buffer = Buffer.from(dec, 'base64');
}
fs.open(file_out, 'w', function(err, fd) {
if (err) {
throw 'No se puede crear el archivo: ' + err;
}
fs.write(fd, buffer, 0, buffer.length, null, function(err) {
if (err) throw 'Error al escribir en el archivo: ' + err;
fs.close(fd, function() {});
});
});
Uso
Parámetros:
<file-input>: Archivo de entrada. Este puede ser cualquier archivo incluyendo imágenes y video. (Nota: este código solo soporta archivos de poco tamaño, ya que se encripta en memoria y dependerá de cuanta tengas.)
<op ['enc' || 'des']>: Modo de operación, encriptar con enc y desencriptar con des
<pass>: Clave de encriptación.
<deep>: Profundidad al encriptar y al desencriptar. Básicamente es cuantas veces se encriptará o desencriptará el archivo.
<file-out>: Archivo de salida.
Para encriptar ejecuta el siguiente comando node cfrf.js archivo.txt enc clave_secreta 3 archivo.txt.cfr esto generará un archivo de salida cuyo contenido está encriptado en base64.
Y para desencriptar ejecuta lo siguiente node cfrf.js archivo.txt.cfr des clave_secreta 3 archivo.txt
olvide m icontraseña como puedo recuperarla
ResponderBorrar