You are on page 1of 4

14/12/13

Xor Hashing Spiegazione ed implementazione | Alessio Delmonti Tecnocrazia

Alessio Delmonti Tecnocrazia


More than 90% of code is crap.

Xor Hashing Spiegazione ed implementazione


Pubblicato il 25 ottobre 2011

Ho ultimamente avuto la necessit di esplorare varie tecniche di hashing delle stringhe. Lo Xor Hashing una tecnica semplice ma efficace per la criptazione delle stringhe. Loperatore Xor, anche detto exlusive or, restituisce TRUE se uno dei due valori (bit) TRUE ma non entrambi. Ad esempio: 10010 00101 ---------tecnocrazia.com/xor-hashing-spiegazione-ed-implementazione 1/4

14/12/13

Xor Hashing Spiegazione ed implementazione | Alessio Delmonti Tecnocrazia

10111 Analizziamo quindi la conversione manuale della stringa ciao ed esaminiamo la sua implementazione Javascript qui esposta. function xor_str(str) { var to_enc = str; //ciao var xor_key=6; // possibile cambiare con altri numeri var the_res="";//la stringa in output for(i=0;i<to_enc.length;++i) { the_res+=String.fromCharCode(xor_key^to_enc.charCodeAt(i)); } return the_res; } 001 La funzione prende in input la stringa ciao 002 Viene assegnato la chiave di paragone per lo xor 003 Viene inizializzata la stringa in output 004 Il for cicla le lettere delle strighe e compie le seguenti operazioni.

x o r _ k e y ^ t o _ e n c . c h a r C o d e A t ( i )

La funzione charCodeAt , la quale restituisce il valore unicode di un carattere, prende la prima posizione della stringa (c) e restituisce il suo valore unicode (99) il quale valore binario 1100011. il valore binario di 6 invece 110 ovvero 0000110. Viene eseguito quindi lo xor. 1100011 0000110
tecnocrazia.com/xor-hashing-spiegazione-ed-implementazione 2/4

14/12/13

Xor Hashing Spiegazione ed implementazione | Alessio Delmonti Tecnocrazia

-------1100101 Il risultato binario 1100101 corrisponde al carattere unicode 101 005 Viene tradotto il valore unicode in stringa, ovvero e ed accodato alla variabile to_res in output. La procedura viene ripetuta anche per le lettere i,a,o. Il risultato quindi: eogi Non mi soffermer a spiegare lalgoritmo inverso in quanto adesso dovrebbe essere abbastanza chiaro. Eccolo qui: function decrypt_str(str) { var to_dec=str; output = ""; var xor_key=6; for(i=0;i<to_dec.lenght: i++) { output+=String.fromCharCode(xor_key^to_dec.charCodeAt(i)); } return output; } Alcuni link interessanti per approfondire: Exclusive or Xor swap alorithm Binary converter

tecnocrazia.com/xor-hashing-spiegazione-ed-implementazione

3/4

14/12/13

Xor Hashing Spiegazione ed implementazione | Alessio Delmonti Tecnocrazia

Pubblicalo su Twitter Aggiungilo a Google Bookmarks Pubblicalo su Facebook


Hai fatto +1

Aggiungilo a LinkedIn Pubblicalo su Delicious

Questo articolo stato pubblicato in Programmazione e contrassegnato come hashing, javascript, xor, xor swap da alexintosh . Send via E-mail program Aggiungi il permalink [http://tecnocrazia.com/xor-hashing-spiegazione-ed-implementazione/] ai segnalibri.
Stampa con PrintFriendly

0 commenti Start the discussion


Migliori Comunit Condividi

Entra

Nessuno ha ancora commentato.

Iscriviti

Add Disqus to your site

tecnocrazia.com/xor-hashing-spiegazione-ed-implementazione

4/4