Site icon Antonio Lamorgese

Criptare files e proteggere dati sensibili con javascript su PC e MAC

criptare file con javascript

In questa guida vedrai come criptare files e proteggere dati sensibili con Javascript, utilizzando un sistema semplice e affidabile. Avrai modo di proteggere i tuoi dati, e quelli di altri in tuo possesso, in totale sicurezza. A tal proposito, visto e considerato che internet è, ad oggi, il sistema più diffuso per trasmettere file contenenti, spesso, informazioni riservate non è sbagliato criptare questi file evitando che le informazioni in essi contenute possano essere lette o, peggio ancora, rubate. Di conseguenza, la crittografia risulta essere una delle pratiche più idonee, da mettere in atto, per proteggere dati sensibili in tuoi possesso.


LEGGI ANCHE: Come proteggere file e cartelle in Windows


1. L’importanza di criptare files e proteggere dati sensibili

Come ho accennato precedentemente, la crittografia, pur avendo origini antiche, è tutt’ora il sistema più utilizzato per criptare file e dati prima di essere trasmessi o archiviati da sistemi elettronici. Molti utenti, però, evitano questa importante pratica, mettendo ogni giorno a rischio i dati sensibili trattati, rendendoli di fatto accessibili a chiunque.

Per fortuna, i software e le librerie disponibili hanno reso la crittografia una tecnica accessibile a tutti. In questa guida, sfruttando una libreria Javascript, gratuita, vedrai come implementare, nei tuoi progetti, un sistema di crittografia file semplice e immediato.

2. La crittografia a chiave simmetrica

Il sistema utilizzato, in questo articolo, è noto con il nome di “crittografia a chiave simmetrica”. Cioè, il file può essere decriptato solo dalla persona che conosce la password di decodifica.

Logicamente la password, utilizzata per la decodifica delle informazioni, deve viaggiare su canali diversi da quelli utilizzati per la trasmissione e la condivisione delle informazioni da proteggere. Questo tipo di approccio, è diventato necessario per impedire la diffusione, involontaria, di informazioni riservate.

In questo breve video tutorial avrai modo di approfondire i vari tipi di crittografia è l’importanza che riveste nel trattamento dei dati sensibili, con l’ausilio di sistemi informatici.

Crittografia simmetrica e asimmetrica
Comprendere la crittografia simmetrica e asimmetrica

3. Criptare files con Javascript

Il sistema utilizzato in questo articolo, per criptare files, sfrutta la libreria Javascript “crypto Library”. La libreria aes-js è reperibile sul portale CDNJS a questo indirizzo. Se non hai tempo e vuoi provare subito le straordinarie funzionalità di questa libreria, puoi cliccare su questo link e testare la demo online.

criptare file online con la demo

3.1 Il metodo di Cifratura file con AES e javascript

Ora, dedicami cinque minuti del tuo preziosissimo tempo e iniziamo a studiare le due funzioni principali della libreria aes-js. Nel codice seguente, e solo a titolo esplicativo, sono riportate le istruzioni che ti permettono di criptare il file “file1.pdf”:

// Cripta il file
var file = ‘file1.pdf’; 
var reader = new FileReader();
reader.readerAsDataURL(file);
reader.onload = function(e) {
   var encrypted = CryptoJs.AES.encrypt(e.target.result, password);
   $(‘#step4 a.download’).attr(‘href’, ‘data:application/octet-stream,’+encrypted);
   $(‘#step4 a.download’).attr(‘download’, file + ‘.encrypted’);
}

Stessa operazione eseguita per la codifica va effettuata per la decodifica del file criptato.

// Decripta il file
var file = ‘file1.pdf’; 
var reader = new FileReader();
reader.readerAsText(file);
reader.onload = function(e) {
   var decrypted = CryptoJs.AES.decrypt(e.target.result, password).toString(CryptoJS.enc.Latin1);
   $(‘#step4 a.download’).attr(‘href’, decrypted);
   $(‘#step4 a.download’).attr(‘download’, file.replace(‘.encrypted’,’’));
}

Nei due script, puoi notare come, le funzionalità per accedere al contenuto di un file fanno ricorso all’oggetto FileReader. Il quale, tramite i suoi due metodi asincroni, può leggere e gestire l’intero contenuto di un file. Terminata la lettura del file viene innescato l’evento onload dell’oggetto reader, a cui viene passato il parametro “e”. Il contenuto del file da criptare viene passato alla funzione CryptoJs.AES.encrypt attraverso la seguente istruzione: e.target.result.

Il contenuto criptato viene memorizzato nella variabile encrypted, che crea un URL associato al tag <A> con ID download e contenuto all’interno del DIV con ID step4. Creando, di fatto, un pulsante cliccabile che ti permetterà di scaricare il file criptato.

3.2 Scarica e prova la demo, per la Cifratura file, sul tuo PC

Ad ogni modo, per implementare il tuo primo sistema di cifratura non è necessario scrivere decine di righe di codice, quello che è necessario adesso è scaricare il progetto da questo indirizzo e dare un’occhiata al contenuto dei file index.html e ../assets/js/script.js presenti all’interno del file zip scaricato.

Esegui il file index.html, aprendolo con il tuo browser web preferito, e prova a criptare e decriptare un file.

Il resto del codice di cifratura e decodifica è contenuto proprio all’interno del file script.js, che puoi tranquillamente aprire e modificare a tuo piacimento. In questo file è interessante notare le istruzioni che mettono in moto tutte le funzionalità della libreria aes-js e come, con pochissime righe di codice, è possibile realizzare un vero e proprio sistema di codifica e decodifica file.


LEGGI ANCHE: Come proteggere con password file e cartelle


Exit mobile version