2014-02-11 439 views
1

我使用http://www.openwall.com/phpass/哈希密碼,並做到這一點是:數據類型來存儲phphash密碼

$t_hasher = new passwordhash(8, FALSE); 
$hash =$t_hasher->HashPassword('myPassword'); 

一個典型的哈希看起來像$2a$08$xKcZiTBgnoJ2z/aXg2K7m.0roI4gMDO3VSYmBAH/nYAYjPNBfo1Lq

我應該使用的SQL表中哪些數據類型存儲$ hash?

+1

你可以使用varchar字段類型存儲在數據庫中 –

+0

請看看:http://stackoverflow.com/questions/247304/mysql-what-data-type-to-use-for-hashed-password-字段和長度 - 它看起來類似於您的問題 –

+0

作爲重複關閉?我沒有詢問關於存儲Bcrypt散列的問題,而是通過開放式牆壁(openwall)在phphash類中存儲的內容。 – user1032531

回答

0

爲了將來的證明,不要依賴任何實現使用VARBINARYTINYBLOB(可以容納255個字節並且長度可變的東西)。這在PHP manual itself中也是推薦的。

+0

我目前使用二進制(60)。這是正確的尺寸? – user1032531

+0

只要您不更改生成散列的算法,就可以。例如,你可能會在將來更新一個更好的散列算法,這可能需要61個字節,現在你將會改變你的表格。沒有任何數字的'BINARY'類型等於'BINARY(255)'。 – Fleshgrinder

+0

char(256)會更好,還是堅持二進制(60)? – user1032531