Se la tua applicazione sta calcolando md5 solo quando qualcuno si registra sul tuo sito o sta effettuando l'accesso, possiedi molte chiamate a md5 che farai all'ora? Un paio di centinaia? Se è così, non credo che il davvero piccolo la differenza tra PHP e MySQL sarà significativa.
La domanda dovrebbe essere più simile a "dove metto il fatto che le password sono memorizzate utilizzando md5" piuttosto che "cosa mi fa vincere quasi nulla".
E, come nota a margine, un'altra domanda potrebbe essere:dove puoi permetterti di spendere risorse per quel tipo di calcoli? Se hai già 10 server PHP e un server DB sotto carico pesante, ottieni la tua risposta;-)
Ma, solo per divertimento :
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (2.24 sec)
E in PHP :
$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
$a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";
dà :
$ php ~/developpement/tests/temp/temp.php
3.3341760635376
Ma probabilmente non calcolerai un milione di md5 in questo modo, vero?
(E questo non ha nulla a che fare con la prevenzione delle iniezioni SQL:basta usare l'escape/citare i tuoi dati! sempre! o usare le istruzioni preparate)