Jika aplikasi Anda hanya menghitung md5 ketika seseorang mendaftar di situs Anda, atau sedang login, memiliki banyak panggilan ke md5 yang akan Anda lakukan per jam ? Beberapa ratus? Jika demikian, menurut saya sangat kecil perbedaan antara PHP dan MySQL akan sangat signifikan.
Pertanyaannya seharusnya lebih seperti "di mana saya meletakkan fakta bahwa kata sandi disimpan menggunakan md5" daripada "apa yang membuat saya hampir tidak menang".
Dan, sebagai catatan tambahan, pertanyaan lain mungkin:di mana Anda dapat menghabiskan sumber daya untuk perhitungan semacam itu? Jika Anda memiliki 10 server PHP dan satu server DB sudah di bawah beban berat, Anda mendapatkan jawaban Anda;-)
Tapi, hanya untuk bersenang-senang :
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (2.24 sec)
Dan di PHP :
$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
$a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";
memberikan :
$ php ~/developpement/tests/temp/temp.php
3.3341760635376
Tapi Anda mungkin tidak akan menghitung satu juta md5 seperti ini, bukan?
(Dan ini tidak ada hubungannya dengan mencegah injeksi SQL :keluarkan saja/kutip data Anda ! selalu ! atau gunakan pernyataan yang sudah disiapkan)