誰かがあなたのサイトに登録したとき、またはログインしているときにアプリケーションがmd5を計算しているだけの場合、md5への多くの呼び出しを所有しますか?数百?もしそうなら、私は本当に小さいとは思わない PHPとMySQLの違いはまったく重要です。
質問は、「何が私にほとんど何も勝てないのか」というよりも、「パスワードがmd5を使用して保存されているという事実をどこに置くのか」のようなものでなければなりません。
そして、補足として、別の質問があります:その種の計算にリソースを費やす余裕はどこにありますか? 10台のPHPサーバーと1台の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
しかし、おそらくこのように100万md5を計算することはないでしょう?
(これはSQLインジェクションの防止とは関係ありません。データをエスケープ/引用するだけです!常に!またはプリペアドステートメントを使用してください)