我应该将密码列创建为常规varchar,然后像这样插入:
sha1($pass_string)
或者我应该在创建表时做一些额外的事情以确保密码字段是安全的?
谢谢!
我应该将密码列创建为常规varchar,然后像这样插入:
sha1($pass_string)
或者我应该在创建表时做一些额外的事情以确保密码字段是安全的?
谢谢!
这是一个普通的varchar字段(40个字符),但如果你想设置它更安全,你应该使用salt。
http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/
更新:
警告:没有盐的哈希密码真的很难!你永远不应该使用它!
密码腌制是这样做的好方法: 密码腌制
正如pst所建议的那样:
使用SHA-1和盐是更天真但很安全的方法。
运用 bcrypt :
这是更安全的方法:)因为它使用速度以使其更安全,bfish是围绕加密方法blowfish构建的哈希函数。 (似乎比twofish还存在,应该是河豚的“现代”版本)。
它是一个使用SHA-1链的版本,因此它是一个中间解决方案,但允许根据您的需要设置速度。实际上速度会降低您的安全性。
这是一个普通的varchar字段(40个字符),但如果你想设置它更安全,你应该使用salt。
http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/
更新:
警告:没有盐的哈希密码真的很难!你永远不应该使用它!
密码腌制是这样做的好方法: 密码腌制
正如pst所建议的那样:
使用SHA-1和盐是更天真但很安全的方法。
运用 bcrypt :
这是更安全的方法:)因为它使用速度以使其更安全,bfish是围绕加密方法blowfish构建的哈希函数。 (似乎比twofish还存在,应该是河豚的“现代”版本)。
它是一个使用SHA-1链的版本,因此它是一个中间解决方案,但允许根据您的需要设置速度。实际上速度会降低您的安全性。
手册 包含一个很好的解释,使用什么类型的列。
大多数人会按照您的建议保存哈希值。它足够安全和简单,是一个不错的选择。
请注意,最终可以破解所有哈希值,因此任何哈希都优于无哈希且SHA足够强。