Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que é mais rápido/melhor de usar:a função MySQL ou PHP md5?


Se sua aplicação está apenas calculando md5 quando alguém se cadastra em seu site, ou está logando, possui muitas chamadas para md5 você fará por hora ? Algumas centenas? Se sim, não acho que o muito pequeno diferença entre PHP e MySQL será significativa.

A pergunta deveria ser mais como "onde coloco o fato de a senha ser armazenada usando md5" do que "o que me faz ganhar quase nada".

E, como nota, outra pergunta poderia ser:onde você pode gastar recursos para esse tipo de cálculo? Se você tem 10 servidores PHP e um servidor de banco de dados já sob carga pesada, você obtém sua resposta;-)

Mas, apenas por diversão:
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
|                               0 |
+---------------------------------+
1 row in set (2.24 sec)

E em 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

Mas você provavelmente não estará calculando um milhão de md5 assim, não é?

(E isso não tem nada a ver com a prevenção de injeções de SQL:apenas escape/cite seus dados! sempre! ou use instruções preparadas)