2011-09-12 53 views
2

這是我一直想知道的。讓MySQL處理我的md5散列或者我應該讓PHP處理它?PHP MD5與MySQL的md5

+1

真的很重要嗎(例如,你需要在成千上萬或數百萬行上做這件事嗎?) –

+4

如果'md5'將用於密碼,請不要想得更快,思考更慢(比如'bcrypt' )! – Shef

+0

不要忘記解析查詢和網絡/套接字延遲。 –

回答

2

只是比較性能,不會有任何明顯的不同(我認爲mysql的實現將會非常非常微小一點)。

嘗試使用導致更多可更改(並且更容易維護)代碼的解決方案。對我來說,這是在做像哈希在PHP的東西,但我不知道你的代碼是什麼樣子,所以也許讓MySQL做這個工作對你來說更容易。

PS:如果你想利用這個口令,考慮使用另一algorithmhashing(SHA256爲例)。欲瞭解更多信息,請看wikipedia並閱讀有關碰撞。

+1

別擔心,我的密碼系統涉及512次散列和鹽分。 – WojonsTech

4

其實我認爲MySQL MD5的實現會更快。

PHP的原生md5()有一點凌亂的算法實現。當用PHP5散列MD5時,我會推薦使用hash('md5',$var);,它被證明更快。

儘管你自己做了基準測試。

請參閱this page(評論底部)。

0.33311605453491: hash/md5 
1.0671429634094: md5 
+0

接下來我會研究它,我只是想製作一個基本的布爾泰力工具。只是爲了說明爲什麼不在工作中使用md5密碼,他們可以在線使用md5生成器,然後將其複製到我的代碼中,我的數據庫將列出匹配的密碼。 – WojonsTech

+0

我想它總是最好總是使用哈希()而不是md5一個 – WojonsTech

1

做一些分析找出。但是,如果您遇到嚴重的性能問題,請記住80-20規則。那麼最好先找出瓶頸在哪裏。

我的直覺是沒有很多。就我個人而言,我會把MD5與MySql - 保持業務邏輯在一起。

+0

這是一個小型的個人項目它不會需要很長的時間只是幾個小時,但是80-20規則殺死了我工作的一些人 – WojonsTech