Ben DB karşı kullanıcıların şifrenizi kontrol edin.
hızlı ne olduğunu, Mysql MD5 fonksiyonu kontrol
... pwd = MD5('.$pwd.')
OR PHP MD5 fonksiyonu
... pwd = '.md5($pwd).'
ya da iki seçenek arasında Doğru nedir?
teşekkürler
Birisi sitenizde kaydeder, ya da giriş olduğunda uygulama sadece md5 calcullating ise, md5 birçok aramaları saatte yapacak kendi? Yüzlerce çift? Eğer öyleyse, ben PHP ve MySQL arasındaki really small farkı hiç önemli olacağını sanmıyorum.
Soru daha "beni neredeyse hiçbir şey kazanmak yapar ne" daha "nerede şifre md5 kullanarak saklanan gerçeği koymak" gibi olmalıdır.
Ve, bir dipnot düşmek gibi, başka bir soru olabilir: Eğer hesaplamaları için bu tür kaynakların nereye harcanacağı gelemez? 10 PHP sunucuları ve zaten ağır yük altında bir DB sunucu varsa, ;-) cevap almak
Ama, sadece eğlence için:
mysql> select benchmark(1000000, md5('test'));
+---------------------------------+
| benchmark(1000000, md5('test')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (2.24 sec)
Ve PHP:
$before = microtime(true);
for ($i=0 ; $i<1000000 ; $i++) {
$a = md5('test');
}
$after = microtime(true);
echo ($after-$before) . "\n";
verir:
$ php ~/developpement/tests/temp/temp.php
3.3341760635376
Ama muhtemelen, böyle bir milyon md5 olacak hesaplama olmayacak?
(And this has nothing to do with preventing SQL injections : just escape/quote your data ! always ! or use prepared statements)
Performans gerçekten burada bir sorun var mı? Bu marjinal olması olasıdır.
Ben daha sonra istemci kodu hesaplanan karma (örneğin php) ile karşılaştırmak, mysql dışarı sütun değeri okumak, söyleyebilirim.
Bunu yapmak için temel nedeni böyle bir karma için genellikle istenmeyen olmayan bir ikili düzende sütunu (örneğin harf duyarsız vb), harmanlama veritabanı olarak aptalca şeyler kaçınır olmasıdır.