Mysql
 sql >> Database >  >> RDS >> Mysql

Cosa c'è di più veloce/migliore da usare:la funzione MySQL o PHP md5?

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)