Criptare files e proteggere dati sensibili con javascript su PC e MAC
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
Indice del Post...
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.
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.
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