Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 3347, trackbacks - 14649

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

[70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

La mia reputazione sta colando a picco, dopo il mio breve racconto sul byte innamorato.  Mi devo riprendere subito, ed alla svelta, anche! Riprendo quindi la mia serie di post sull'esame 70-536 continuando il discorso sulle classi di crittografia messe a disposizione da .NET. Nell'ultimo post avevo fatto vedere qualche riga di codice per utilizzare la classe HashAlgorithm allo scopo di generare l'hash value di una stringa, secondo diversi provider (SHA256, SHA384, SHA512, etc.).

Giusto per fare qualche test, ho scritto una piccola applicazione che prende in input una stringa da una TextBox, ne calcola l'hash con i vari provider .NET, e ne visualizza l'output su un'altra TextBox. L'interfaccia è molto semplice e spartana. Prima di parlare dell'interfaccia in sè, voglio farvi vedere la classe HashString, così come era stata scritta l'ultima volta, e come la useremo oggi.

public class HashString
{
    
public static byte[] HashStringa(string contents, string shaMethod)
    {
        HashAlgorithm algo = HashAlgorithm.Create(shaMethod);
        
// converto la stringa in byte[]
        
byte[] buffer = Encoding.Unicode.GetBytes(contents);
        
// calcolo l'hash
        
byte[] hash = algo.ComputeHash(buffer);
        
// ritorno il byte[] che contiene l'hash
        
return (hash);
    }
}

Il metodo statico HashStringa accetta due parametri: la stringa contents di cui calcolare l'hash ed un'altra stringa shaMethod che contiene il nome della classe da usare per calcolare l'hash value. La variabile shaMethod viene passata al costruttore statico Create della classe HashAlgorithm. Il metodo, infine, ritorna un byte[] contenente l'hash value: da notare che la lunghezza di questo array varia a seconda del tipo di hash che abbiamo calcolato. Maggiori dettagli li trovate nel mio post precedente.

L'interfaccia comprende un solo Windows Form, con i seguenti oggetti:

  • una TextBox txtInput
  • una TextBox txtOutput
  • una ComboBox cmbHashMethod
  • un Buttom btnGet

La ComboBox viene inizializzata durante il Load della WF, con il seguente codice:

private void FormMain_Load(object sender, EventArgs e)
{
    
string[] hashes = { "SHA1", "SHA256", "SHA384", "SHA512", "MD5" };
    
this.cmbHashMethod.DataSource = hashes;
}

Dichiaro un array, ed usando un semplice data-binding popolo la ComboBox. L'altro evento che ho gestito è il Click del Button, per sfruttare la classe HashString indicata prima:

private void btnGet_Click(object sender, EventArgs e)
{
    
if (this.txtInput.Text == string.Empty) return;
    
if (this.cmbHashMethod.SelectedItem == nullreturn;

    
string sha = (string)this.cmbHashMethod.SelectedItem;
    System.Text.Encoding enc = System.Text.Encoding.UTF8;
    
byte[] ret = HashString.HashStringa(this.txtInput.Text, sha);

    
this.txtOutput.Text = enc.GetString(ret);
}

Innanzitutto, controllo che l'utente abbia scritto qualcosa in txtInput e che abbia selezionato una classe nella cmbHashMethod. Calcolo l'hash e ne visualizzo il valore in txtOutput. Ho utilizzato la classe Encoding per trasformare un byte[] in una stringa in chiaro.

A cosa serve calcolare l'hash di un oggetto?
Alcuni via e-mail, o tramite la Contact Form del mio blog, mi hanno chiesto lo scopo di calcolare un hash value se non posso tornare indietro al contenuto iniziale. Attenzione: stiamo parlando di cose diverse! L'hash value serve ad esempio per verificare che il risultato di una trasmissione sia avvenuto correttamente. Mi spiego meglio. Supponiamo di avere un server Web con su Linux, e di mettere a disposizione su questo server il documento Migrate_To_Windows.pdf. Supponiamo che l'hash value di questo file sia un certo valore xyz. Ora, voi con IE navigate su quel sito, scaricate il documento e provate a controllare l'hash value del file. Se ottenete xyz, siete molto ragionevolmente sicuri che il documento scaricato è identico all'originale. Se ottenete un valore diverso da xyz, allora qualcosa non è andato bene ed i due documenti sono diversi. Ricordate infatti che è sufficiente anche una piccola differenza, per avere un hash value completamente diverso.

Oppure, ancora, lo spiega molto bene anche Alessio in questo post. Per evitare di memorizzare una password in plaintext, ne viene memorizzato soltanto il suo hash value, che poi verrà confrontato con l'hash value calcolato dalla password inserita dall'utente in fase di login.

Quello che mi avete chiesto via e-mail è la vera e propria crittografia, ovvero: prendere un messaggio, criptarlo con una chiave privata, ottenere un messaggio codificato e trasmettere quello. Il ricevente potrà decodificare il messaggio con la chiave pubblica e risalire di conseguenza al messaggio originario. Questo sarà il tema dei miei prossimi post, considerando che preferisco non scendere troppo nella teoria (non ne sarei in grado, e soprattutto c'è qualcun altro che lo fa meglio di me ), ma vedere esempi pratici direttamente con le classi esposte dal FX2.0. Alla prossima, allora!

powered by IMHO 1.2

Print | posted on lunedì 13 marzo 2006 12.59 | Filed Under [ Esame 70-536 ]

Feedback

Gravatar

# re: [70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

good!!
17/04/2006 16.03 | fadhel
Gravatar

# re: [70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

http://www.forstaelsesfull-lesbisk-dobbel-gjennomtrengning.toyt3.com II http://www.sextoon-masturbating.toyt3.com II http://www.bladet-lek-kon.pu1a.com II http://www.lilla-brosten-lesbisk.pu1a.com II http://www.infantiles-follando-cuadros.sessoenanitas.com II http://www.dvd-gruppo-sesso.sessoenanitas.com II http://www.sylwia-seks-oralny.aw.tychy.pl II http://www.nudystki-live.aw.tychy.pl II http://www.cuadros-caldo-ragazza.durosporn.com II http://www.jpg-postales-goticas.durosporn.com II http://www.foto-hentai-porno.webcamsdetias.com II http://www.hentai-tits-movies.webcamsdetias.com II http://www.mensex-movies.strettasesso.com II http://www.mpgs-biancheria-sexy.strettasesso.com II http://www.galerias-rubias19-jovencita.putasenwebcam.com II http://www.mujer-bellas-site.putasenwebcam.com II http://www.foto-maduras-tetonas.quejovencitasputas.com II http://www.fotos-grafitis.quejovencitasputas.com II http://www..que-putas.com II http://www.fotos-de-niaas-indias.que-putas.com II http://www.sexo-fotosexi.vecchiecalde.com II http://www.cuadro-mutandine-strappate.vecchiecalde.com II http://www.nynorsk-porno.penis-kalu.com II http://www.knull-nu-lesbiskt.penis-kalu.com II http://www.cuadro-mardelchat.peniscaldo.com II http://www.clips-bananaguide.peniscaldo.com II http://www.homo-porn.fittaknull.com II http://www.fria-fittor-hardcore.fittaknull.com II http://www.svenska-kyrkanse-arte.fingerpulla.com II http://www.spermakaskader-mogna-brost.fingerpulla.com II http://www.brutal-cumshot-porno.kuvia-porno.com II http://www.norsk-naken-mpeg.kuvia-porno.com II http://www.video-porn-site.matala-pimppi.com II http://www.tarve-poika.matala-pimppi.com II http://www.hentai-tetonas-jpg.analeculeadas.com II http://www.clips-vecchie-nuda.analeculeadas.com II http://www.tetonas-gratis-movieclip.guarrasmuyputas.com II http://www.mpg-lesbianas-chile.guarrasmuyputas.com II http://www.pic-tio-maricones.xxx-culiadas.com II http://www.chupa-chochos-galerias.xxx-culiadas.com II
28/11/2006 10.59 | qwerty
Gravatar

# re: [70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

http://calde-fiche.3f4ungeh.info/
http://www.4kngzaeb5i7z.info/prezzo-monitor-philips.html
http://panorama-venezia.3h05h1.info/
http://voli-firenze-parigi.4n-ykca.info/
http://online-dating-industry.54js2rd.info/
http://www.371lv.info/grand-canyon-tour.html
http://www.3i9hf3o-aos.info/orsi-anziani-maturi-nusex/
http://www.39p1ql3s.info/freddissimo-affetto-castra.html
http://www.2yk-ah1.info/corvo-casteldaccia.html
http://ardito.3-nhtpd17.info/
http://www.451z74.info/ticket-concert-vienna/
http://www.2edzw33ge572.info/mutuo-casa-online.html
http://www.39p1ql3s.info/ambulanza-milano.html
http://moneta-ungheria.39p1ql3s.info/
http://train-simulator-microsoft.4hg9t1xe22q.info/
http://addominali-alla-panca.2mds04c3tun.info/
http://restauro-tecnica.2xixbd381ca8.info/
http://bdsm-free-info-password-remember.41bhqr.info/http://hadrcore.5ltz-bnhuh0.info/
http://giro-milano.5w4vwm12.info/
http://2gkyvb87.5n4ue.info/
http://secondo-lavoro-casa.5fssj5hu.info/
http://amichevole-amatoriali-pompino.5z582.info/
http://www.5wqz8x.info/realita-fotografia.html
http://146159072.5bms40n05.info/
http://emotivo-infermiera-urinate.5z582.info/
http://farsesco-bionde.58pv4u.info/
http://annuncio-online-lombardia.58pv4u.info/
http://timoroso-bionde-sex.5w4vwm12.info/
http://farsesco-giovane-spogliarello.5rm2yc0.info/
http://146169108.5bms40n05.info/
http://pisellino.58pv4u.info/
http://x4k9j6r.5n4ue.info/
14/12/2006 15.33 | Golumn
Gravatar

# re: [70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

http://www.ey01yo4f.info/bellezza-lesbiche.html |_|
http://volo-roma-miami.ihgjnv8e.info/ |_|
http://www.ey01yo4f.info/piesex-erotici.html |_|
http://prestito-lecce-personale.lh1s60.info/ |_|
http://pompino-con-acqua.f2vmt-su6ej.info/ |_|
http://acura-auto-part.f6pz6r.info/ |_|
http://acquisto-immobile-roma.e0qh5dk0qe.info/ |_|
http://sauna-gay.fy2u9t3.info/ |_|
http://to-toast.djywe69d5s.info/ |_|
http://spagnole-gratis.itc8ql.info/ |_|
http://prensexti-sex-me.lh1s60.info/ |_|
http://www.fknfwkx3we49.info/144235008/ |_|
http://www.mgya9il1a.info/pre-teen-girls.html |_|
http://erotick.f6pz6r.info/ |_|
http://www.ey01yo4f.info/risoluto-bionde-sex.html |_|
http://www.mgya9il1a.info/bramare-fighetta-sex.html |_|
http://retiring-fighette-spogliarello.djywe69d5s.info/ |_|
http://www.ey01yo4f.info/ridicolo-amatoriali-sex.html |_|
http://www.j4qjaoro.info/intenso-bionde-ubriache.html |_|
http://cameriera-pompino-in-anticamera.djywe69d5s.info/ |_|
http://www.fy2u9t3.info/giovani-adolescenti-prossexose-video/ |_|
http://incontri-chat-sexeo.ejohjpv5s.info/ |_|
http://attacchi-lavatrice.ihgjnv8e.info/ |_|
http://www.iebd51cca.info/prodigiosamente-foto.html |_|
http://turismo-archeologico.fknfwkx3we49.info/ |_|
http://prittier-lesbiche-sex.fknfwkx3we49.info/ |_|
http://spavaldo-fighette-fotti.fknfwkx3we49.info/ |_|
http://www.djywe69d5s.info/9bsi47j.html |_|
http://www.ey01yo4f.info/lovable-cowgirl-anale-fotti.html |_|
http://strano-prosperose.khzfj7s1s.info/ |_|
http://www.ey01yo4f.info/outlet-samsonite.html |_|
http://hotel-prato-nevoso.fy2u9t3.info/ |_|
http://consulenza-mutuo.mgya9il1a.info/ |_|
http://hem-hotel-amsterdam.lh1s60.info/ |_|
http://allievo-strip.ihgjnv8e.info/ |_|
http://www.iebd51cca.info/piu-freddo-allievo-nubile/ |_|
http://orecchino-diamante-punto-luce.f2vmt-su6ej.info/ |_|
http://www.khzfj7s1s.info/pe86f5m.html |_|
http://recensione-promessi-sposi.khzfj7s1s.info/ |_|
http://sverginamento-anale.e0qh5dk0qe.info/ |_|
http://www.ey01yo4f.info/tarocchi-consulto.html |_|
http://www.j4qjaoro.info/suoneria-samsung-sms.html |_|
http://www.khzfj7s1s.info/fxvk9tl1vjk.html |_|
http://solletico-filmati.j4qjaoro.info/ |_|
http://www.ihgjnv8e.info/assurdo-segretaria-spogliarello.html |_|
http://www.djywe69d5s.info/yt6zti4h.html |_|
http://trovare-fidanzata.fknfwkx3we49.info/ |_|
http://sex-anale.f6pz6r.info/ |_|
http://televisore-lcd-hitachi.ihgjnv8e.info/ |_|
http://www.f2vmt-su6ej.info/dsd1ndh778/ |_|
http://vacanza-pesaro.khzfj7s1s.info/ |_|
http://divino-sex.mgya9il1a.info/ |_|
14/12/2006 22.29 | poly
Gravatar

# re: [70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

http://www.chicas-saxy.moekpe16.info vecchie italiane troie http://www.video-masturbazione-figa.eroop16.info trans brescia http://www.amatoriale-segretarie.loekpe16.info collant rotte http://www.cristina-orsi-nuda.koekpe16.info spears mostra figa http://www.donne-incinte-focose.noekpe16.info fighette tgp
28/12/2006 18.08 | aka
Gravatar

# xpf8xj2j

xpf8xj2j http://newspaper.ceroline.info/ <a href='http://newspaper.ceroline.info/'>newspaper</a> <a href="http://newspaper.ceroline.info/ ">newspaper</a>
12/12/2007 9.34 | xpf8xj2j
Gravatar

# Horse sex movies.

Horse training. Horse pictures. Horse fucking.
16/08/2008 22.17 | Horse sex.
Gravatar

# Asian xxx.

Mr chews asian beaver. Asian porn. Asian pussy. Asian beaver. Asian sluts.
16/08/2008 23.41 | Asian creampies.
Gravatar

# Animal sex with human.

Animal sex with girls. Animal sex movies. Animal sex pics animal.
21/08/2008 2.29 | Animal sex.
Gravatar

# Carmen electra nude.

Carmen electra nude. Carmen electra naked. Carmen electra.
26/08/2008 3.16 | Carmen electra naked.
Gravatar

# Britney spears and paris hilton.

Britney spears paris hilton. Britney spears with paris hilton. Britney spears and paris hilton. Paris hilton fucking. Paris hilton porn video. Paris hilton. Britney spears paris hilton pictures.
01/09/2008 5.36 | Paris hilton no underwear.
Gravatar

# Free nude celebrities.

Free nude celebrities. Nude black celebrities. Celeb blogging nude celebrities. Nude male celebrities.
05/09/2008 2.37 | Nude celebrities.
Gravatar

# Animal sex stories free.

Animal sex with human. Sex animal. Animal sex. Farm animal sex.
19/09/2008 5.10 | Sex with animal.
Gravatar

# Levitra viagra cyalis webmd.

Buy sublingual levitra online. Levitra online consultation us. Buy levitra paypal. Levitra preguntas frecuentes. Levitra. Levitra.. Using levitra for eczema..
31/05/2009 7.50 | Levitra.
Gravatar

# Taking viagra with cialis.

Viagra. Story comparison viagra. Generic viagra.
01/06/2009 2.49 | Viagra canada.
Gravatar

# Zoloft.

Zoloft. Zoloft muscular side effects.
02/06/2009 3.55 | Zoloft withdrawal symptoms.
Gravatar

# Viagra.

Viagra. Buy viagra. Discount viagra. Buy viagra uk.
03/06/2009 4.58 | Viagra.
Gravatar

# Acetaminophen oxycodone 500 5 cap.

Oxycodone extraction. Oxycodone extraction gel. Oxycodone acetaminophen. Oxycodone.
03/06/2009 8.55 | 80 mg oxycodone.
Gravatar

# Xanax.

Xanax withdrawal. Symptoms of xanax use. Buy xanax without prescription in usa. Xanax. Xanax with 5-htp.
03/06/2009 14.43 | Buy xanax.
Comments have been closed on this topic.

Powered by: