|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Generare hash di una stringa c/c++
Salve a tutti,
ho una stringa e vorrei generare l'hash di questa e confrontarla con un altra... Come faccio? Uso dev c++ Ciao. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'hash non è una grandezza univoca, ci sono infiniti modi per calcolarlo...ad esempio un hash semplicissimo può essere quello composto da somma dei valori ascii dei caratteri che compongono la stringa diviso per la lunghezza della stringa...
La complessità dell'hash che vuoi calcolare dipende sempre da qual'è lo scopo per cui lo vuoi usare...quindi spiegaci meglio lo scopo di questo hash... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Devo fare un programmino per un esame.
Allora vorrei fare questo: All'apertura del programma l'utente inserisce una password... Questa password è memorizzata in un file... La password pero vorrei salvarla su file come hash e quindi confrontare l'hash salvato con l'hash della password inserita... Ciao. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora ti serve un hash bello potente in cui le collisioni possibili siano minime...
Per una hashtable ad esempio ti sarebbe bastato anche un hash come quello che ti ho detto sopra... Hai due scelte: - te lo crei da solo (mi sa che non ti conviene) - vai a prendere il codice di qualche hash noto (md5 o sha1) o usi qualche libreria che te lo calcola |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Questa applicazione deve girare su qualche sistema operativo in particolare o il codice deve compilare su sistemi operativi diversi ?
|
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
se deve andare solo su Windows potresti usare le CryptoAPI, altrimenti qui c'è il codice di MD5: http://en.wikipedia.org/wiki/Md5
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
No no a me serve una cosa semplice...come md5
Io ricordo che si trovava ad esempio da prompt con un semplice comando... Ciao. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
md5 non è una cosa "semplice"...
Comunque facci sapere per quale sistema operativo ti serve... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Niente di che lo devo utilizzare in un semplice programmino in c/c++
su windows....sto utilizzando dev c++ come compilatore... Ciao. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Non ci sarebbe per caso una libreria dos o altro da poter includere e richiamare la funzione apposita?
Mi sembra che in dos o in linux basti dare il comando md5 da prompt... Ciao. |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
http://www.google.it/search?hl=it&q=...nG=Cerca&meta=
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Scusa, ma che ti ci vuole ad aggiungere l'implementazione di md5 al tuo progetto ? Basta prenderti il codice che ti ha passato andbin, lo emtti nei rispettivi file (tutti tranne mddriver.c)... Dopo ti basta includere il .h e ti definisci una funzione come questa: Codice:
static void MD5String (string) char *string; { MD5_CTX context; unsigned char digest[16]; unsigned int len = strlen (string); MD5Init (&context); MD5Update (&context, string, len); MD5Final (digest, &context); printf ("MD%d (\"%s\") = ", MD, string); MD5Print (digest); printf ("\n"); } Già finito e già pronto... Ultima modifica di cionci : 09-07-2007 alle 08:15. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:24.