Ако приложението ви изчислява само md5, когато някой се регистрира на вашия сайт или влиза, притежавате ли много обаждания към md5, ще правите ли на час? Няколко стотици? Ако е така, не мисля, че наистина малъкта разликата между PHP и MySQL изобщо ще бъде значителна.
Въпросът трябва да е по-скоро като „къде да сложа факта, че паролата се съхранява с md5“, отколкото „какво ме кара да спечеля почти нищо“.
И като странична бележка, друг въпрос може да бъде:къде можете да си позволите да харчите ресурси за този вид изчисления? Ако имате 10 PHP сървъра и един DB сървър вече под голямо натоварване, получавате отговора си;-)
Но само за забавление :
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (2.24 sec)
И в PHP :
$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
$a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";
дава :
$ php ~/developpement/tests/temp/temp.php
3.3341760635376
Но вероятно няма да изчислявате милион md5 по този начин, нали?
(И това няма нищо общо с предотвратяването на SQL инжекции:просто избягайте/цитирайте данните си! винаги! или използвайте подготвени изрази)