Jeśli Twoja aplikacja tylko oblicza md5, gdy ktoś rejestruje się na Twojej stronie lub loguje się, posiadasz wiele połączeń do md5, czy zrobisz to na godzinę? Kilka setek ? Jeśli tak, nie sądzę, aby naprawdę małe różnica między PHP i MySQL będzie w ogóle znacząca.
Pytanie powinno brzmieć bardziej „gdzie mam umieścić fakt, że hasło jest przechowywane przy użyciu md5” niż „co sprawia, że prawie nic nie wygrywam”.
A tak na marginesie, inne pytanie mogłoby brzmieć:gdzie możesz sobie pozwolić na wydatkowanie środków na tego rodzaju obliczenia? Jeśli masz 10 serwerów PHP i jeden serwer DB już pod dużym obciążeniem, otrzymasz odpowiedź;-)
Ale dla zabawy :
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (2.24 sec)
A w PHP :
$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
$a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";
daje :
$ php ~/developpement/tests/temp/temp.php
3.3341760635376
Ale prawdopodobnie nie będziesz tak liczyć miliona md5, prawda?
(I nie ma to nic wspólnego z zapobieganiem wstrzykiwaniu SQL :po prostu unikaj/cytuj swoje dane ! zawsze ! lub używaj przygotowanych instrukcji)