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


Con pochissime righe di codice e una libreria Javascript, puoi realizzare un sistema efficace per criptare file e proteggere dati sensibili.
di Antonio Lamorgese


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.

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



Desideri acquisire nuove competenze?

corsi.it

Seguire questo corso online ti offrirĆ 
l'opportunitĆ  di acquisire nuove competenze e di
migliorare il tuo curriculum professionale.
Clicca qui per seguire le prime lezioni gratuite online

Corsi.it - Il portale Nr.1 al mondo di corsi online


Amministratore di rete e sviluppatore. Dopo anni di esperienza nel settore, ho ideato un sistema di gestione dati MYSQL in PHP senza scrivere una sola riga di codice. Scopri di piĆ¹....