La vera risposta è: dipende
Ci sono un paio di fattori da considerare, i più ovvi sono: la CPU su cui stai eseguendo questi algoritmi e l'implementazione degli algoritmi.
Ad esempio, io e il mio amico eseguiamo la stessa identica versione di openssl e otteniamo risultati leggermente diversi con CPU Intel Core i7 diverse.
Il mio test al lavoro con una CPU Intel (R) Core (TM) i7-2600 a 3,40 GHz
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 64257.97k 187370.26k 406435.07k 576544.43k 649827.67k
sha1 73225.75k 202701.20k 432679.68k 601140.57k 679900.50k
E il suo con una CPU Intel (R) Core (TM) i7 920 a 2,67 GHz
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md5 51859.12k 156255.78k 350252.00k 513141.73k 590701.52k
sha1 56492.56k 156300.76k 328688.76k 452450.92k 508625.68k
Entrambi eseguiamo gli stessi identici binari di OpenSSL 1.0.1j 15 ottobre 2014 dal pacchetto ufficiale di ArchLinux.
La mia opinione su questo è che con la sicurezza aggiunta di sha1, è più probabile che i progettisti di CPU migliorino la velocità di sha1 e più programmatori lavoreranno sull'ottimizzazione dell'algoritmo rispetto a md5sum.
Immagino che un giorno md5 non verrà più utilizzato poiché sembra che non abbia alcun vantaggio su sha1. Ho anche testato alcuni casi su file reali ei risultati sono stati sempre gli stessi in entrambi i casi (probabilmente limitati dall'I / O del disco).
md5sum di un file di grandi dimensioni da 4,6 GB ha richiesto lo stesso identico tempo di sha1sum dello stesso file, lo stesso vale per molti file di piccole dimensioni (488 nella stessa directory). Ho eseguito i test una dozzina di volte e hanno ottenuto costantemente gli stessi risultati.
-
Sarebbe molto interessante approfondire questo aspetto. Immagino che ci siano alcuni esperti in giro che potrebbero fornire una risposta solida al motivo per cui sha1 sta diventando più veloce di md5 sui processori più recenti.