OldWildWeb Logo
Accedi o Registrati

Criptazione dati tramite Javascript

Una valida soluzione economica per implementare una criptazione dati lato client/server senza utilizzare una connessione ssl (in genere fornita ad un prezzo extra dai servizi di hosting)


Una valida soluzione economica per implementare una criptazione dati lato client/server senza utilizzare una connessione ssl (in genere fornita ad un prezzo extra).

L'algoritmo in questione è robusto e non diffuso, grazie a queste due caratteristiche possiamo affermare che un metodo di criptazione del genere può essere considerato sicuro.

Con questo algoritmo è possibile criptare i dati sia dal lato client (tramite una libreria in Javascript) che lato server (tramite una libreria in Php) grazie ad alcune semplicissime funzioni fornite dalle relative librerie.

Con queste librerie ad esempio è possibile rendere impossibile l'interpretazione dei dati che transitano nelle pagine web da parte di eventuali persone che possono spiare la comunicazione trovandosi nel mezzo del transito dei dati (ad esempio un provider potrebbe benissimo disporre di questi dati).

Un esempio pratico di queste librerie è un classico form che spedisce su un server remoto dei dati cifrati.
Tramite la libreria in Javascript è possibile effettuare una criptazione dei dati prima dell'invio delle informazioni su internet (ad esempio sfruttando l'evento Javascript OnSubmit dei form, o la tecnica di programmazione ajax).

Le funzioni chiave da utilizzare in entrambe le librerie (Javascript/Php) sono:

Stringa = X_Crypt_String(Stringa, Password, true ) / $Stringa = X_Crypt_String($Stringa, $Password, true )

Stringa = X_DeCrypt_String(Stringa, Password, true ) / $Stringa = X_DeCrypt_String($Stringa, $Password, true )

Gli argomenti sono : Input, Password, TRUE o FALSE (Per codificare i dati cifrati anche in base64)

Un esempio di un applicazione che sfrutta questa libreria è il nostro password manager online presente nella sezione tools.

Le librerie sono scaricabili gratuitamente dai seguenti link.

Autore Ugo Cirmignani





Il tuo nome (opzionale)
E-Mail (non verrà pubblicata)
Il tuo sito web (opzionale)
Notifiche

kk
L'errore Call-time pass-by-reference has been removed deriva dal fatto che il php una volta aveva il settaggio per il passaggio delle variabili, nelle nuove versioni basta modificare la dichiarazione delle funzioni come suggerito dal php, in parole povere se non sbaglio basta rimuovere il simbolo & che sta per puntatore nelle dichiarazioni delle funzioni.
Inviato Wednesday 4th of March 2015 01:54:32 PM
Guest
Firefox 36.0 desktop.
Ma ho riscontrato che anche nel codice php esce dando errore:
Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of XtEnigmaKey().
in C:\xampp\htdocs\vhosts\Crip_decript\crypter.php on line 2884
Che versioni devo usare Browser e php. O che librerie esterne devo includere?
Inviato Tuesday 3rd of March 2015 01:42:41 AM
kk
Commentando quella riga lato javascript lo script dovrebbe semplicemente usare un altro metodo per la codifica base64, con quale browser hai testato lo script?
Da questa pagina puoi provare la libreria: test criptazione.
Inviato Monday 2nd of March 2015 03:06:28 PM
Guest
Ciao, Ruben.
Il problema che ho riscontrato e non so dove sto sbagliando, e' nel criptare una stringa in php e passarla a javascript per decriptarla.
La mia stringa contiene i caratteri JSON "{[:, come caratteri speciali e lettere e numeri.
PHP:
$Password="prova123";
$String = X_Crypt_String($String, $Password, TRUE);
JS:
var Password="prova123"
var decriptstr = X_DeCrypt_String(xhr.responseText, Password, true );
dove xhr.responseText e' la risposta alla richiesta fatta con :
var xhr = new XMLHttpRequest();.
PS: kk grazie del suggerimento ma temo che se elimino la riga indicata non ricevo il dato decriptato.La libreria funziona non devo modificarla devo "solo" farla funzionare, debuggando il codice quando arriva alla riga indicata, dovrebbe restituire il dato decriptato, invece esce dalla funzione che ha chiamato X_DeCrypt_String. Inviato Sunday 1st of March 2015 11:28:08 PM
kk
Puoi provare ad eliminare la riga

if (typeof(atob) == 'function') return atob(data);

dal sorgente in questo modo il codice prosegue alle istruzioni successive. Inviato Sunday 1st of March 2015 10:30:30 AM
Guest
Ho provato la libreia ma esce durante la funzione base64Decode(data) alla riga :
if (typeof(atob) == 'function') return atob(data);.
Come devo utilizzarla? Inviato Sunday 1st of March 2015 09:22:05 AM
ruben
Potresti spiegare un po di piu. Inviato Wednesday 24th of October 2012 09:33:32 AM