Visto il numero di visualizzazioni che ha avuto questo post volevo giusto approfondire questo argomento per chi non conoscesse alcuni termini.
MD5,SHA1 e CRC32 sono degli algoritmi di HASH
Il piu' famoso e' l' MD5 ma non e' ne il primo ne' l'unico.
PHP supporta con la stessa comodita' anche l'algoritmo SHA1 ed inoltre e' possibile calcolare facilmente il CRC di una stringa.
MD5 - e' definito nella
RFC 1321 ed e' stato codificato nel lontano 1991 da Ronald Rivest in sostituzione dell'algoritmo MD4.
Produce un hash di lunghezza fissata a 128 bit,solitamnente rappresentato come una sequenza di 32 cifre esadecimali*.
SHA1 - appartiene alla famiglia di algoritmi SHA ( SECURE HASH ALGORITHM ).
E' stato proposto nel 1995 in sostituzione del primo algoritmo della famiglia,ora denominato SHA-0.
La continua evoluzione della serie di algoritmi SHA, ha introdotto SHA-224,SHA-256,SHA-384 e SHA-512, a cui solitamente ci si riferisce usando il nome cumulativo di SHA-2.
SHA-1 produce un hash di 160 bit rappresentato come stringa di 40 caratteri esadecimali*.
CRC32 - o Cyclic Redundancy Check nono e' usato per fini di protezione come MD5 e HASH a causa della relativa semplicita' con cui e' possibile ottenere " collisioni ", e' invece un metodo molto utilizzato per il calcolo di hash di controllo e viene usualmente applicato quando risulta utile poter effettuare delle verifiche sull'integrita' di una stringa di dati o di un file.
Esempi di uso si trovano nei programmi di compessione che salvano il CRC del file per controllare il risultato della compressione o nelle comunicazioni, dove il CRC di ogni pacchetto inviato e' controllato prima di richiedere i pacchetti successivi.
Oltre a questi algoritmi ne esistono molti altri come:
WHIRPOOL
TIGER
RIPEMD
*ESADECIMALI =
Il sistema numerico esadecimale (spesso abbreviato come esa o hex) è un sistema numerico posizionale in base 16.
Utilizza 16 simboli invece dei 10 del sistema numerico decimale tradizionale.
Per l'esadecimale si usano in genere simboli da 0 a 9 e poi le lettere da A a F, per un totale di 16 simboli.