Jawaban sebenarnya adalah: Tergantung
Ada beberapa faktor yang perlu dipertimbangkan, yang paling jelas adalah: cpu tempat Anda menjalankan algoritme ini dan implementasi algoritme.
Misalnya, saya dan teman saya sama-sama menjalankan versi openssl yang sama persis dan mendapatkan hasil yang sedikit berbeda dengan CPU Intel Core i7 yang berbeda.
Pengujian saya di tempat kerja dengan Intel (R) Core (TM) i7-2600 CPU @ 3.40GHz
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
Dan miliknya dengan Intel (R) Core (TM) i7 CPU 920 @ 2.67GHz
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
Kami berdua menjalankan binari yang sama persis dari OpenSSL 1.0.1j 15 Okt 2014 dari paket resmi ArchLinux.
Pendapat saya tentang ini adalah bahwa dengan keamanan tambahan sha1, desainer cpu lebih cenderung meningkatkan kecepatan sha1 dan lebih banyak programmer akan mengerjakan pengoptimalan algoritme daripada md5sum.
Saya kira md5 itu tidak akan lagi digunakan suatu hari nanti karena tampaknya md5 tidak memiliki keunggulan dibandingkan sha1. Saya juga menguji beberapa kasus pada file nyata dan hasilnya selalu sama di kedua kasus (kemungkinan dibatasi oleh disk I / O).
md5sum dari file besar 4,6GB membutuhkan waktu yang sama persis dengan sha1sum dari file yang sama, hal yang sama berlaku untuk banyak file kecil (488 dalam direktori yang sama). Saya menjalankan tes lusinan kali dan secara konsisten mendapatkan hasil yang sama.
-
Akan sangat menarik untuk menyelidiki hal ini lebih lanjut. Saya kira ada beberapa ahli yang bisa memberikan jawaban yang solid mengapa sha1 menjadi lebih cepat dari md5 pada prosesor yang lebih baru.