Node.js: cifrare e decifrare una stringa

Node.js: cifrare e decifrare una stringa

La sicurezza delle informazioni è una delle principali preoccupazioni nello sviluppo di applicazioni moderne. Una delle tecniche più comuni per proteggere i dati sensibili è la cifratura. La cifratura è il processo di trasformazione dei dati in una forma illeggibile, nota come testo cifrato, in modo che solo le persone autorizzate possano leggerli. In Node.js, è possibile utilizzare il modulo crypto per cifrare e decifrare una stringa. In questo articolo, esploreremo come farlo.

Per iniziare, crea una nuova cartella per il tuo progetto e apri un terminale nella directory del progetto. Puoi utilizzare il comando seguente per creare un nuovo file JavaScript per il tuo progetto:


touch encrypt_decrypt.js

All'interno del tuo file encrypt_decrypt.js, inizializza il progetto includendo il modulo crypto di Node.js:


'use strict';

const crypto = require('crypto');

Per cifrare una stringa in Node.js, dovrai utilizzare un algoritmo di cifratura e una chiave segreta. Ecco un esempio di come cifrare una stringa utilizzando l'algoritmo AES (Advanced Encryption Standard) e una chiave segreta:


function encrypt(text, secretKey) {
  const cipher = crypto.createCipher('aes-256-cbc', secretKey);
  let encrypted = cipher.update(text, 'utf8', 'hex');
  encrypted += cipher.final('hex');
  return encrypted;
}

const mySecretKey = 'UnaChiaveSegretaSuperSicura';
const plainText = 'Questa è una stringa da cifrare';

const encryptedText = encrypt(plainText, mySecretKey);
console.log('Testo cifrato:', encryptedText);

In questo esempio, la funzione encrypt prende il testo da cifrare e una chiave segreta come input. Utilizza quindi l'algoritmo AES-256-CBC per eseguire la cifratura e restituisce il testo cifrato in formato esadecimale.

Per decifrare una stringa cifrata, utilizziamo una funzione decrypt che prende il testo cifrato e la stessa chiave segreta utilizzata per la cifratura:


function decrypt(encryptedText, secretKey) {
  const decipher = crypto.createDecipher('aes-256-cbc', secretKey);
  let decrypted = decipher.update(encryptedText, 'hex', 'utf8');
  decrypted += decipher.final('utf8');
  return decrypted;
}

const decryptedText = decrypt(encryptedText, mySecretKey);
console.log('Testo decifrato:', decryptedText);

Conclusioni

Questo è solo un esempio di come cifrare e decifrare una stringa in Node.js. È importante notare che la sicurezza dei dati richiede molto più di una semplice cifratura. La gestione delle chiavi, la protezione delle chiavi e altre considerazioni di sicurezza sono fondamentali per una protezione efficace dei dati. Tuttavia, questo articolo ti fornisce una base per iniziare a implementare la cifratura e la decifratura delle stringhe nei tuoi progetti Node.js.

Torna su