【发布时间】:2017-04-30 15:52:09
【问题描述】:
我正在做一个注册页面,我用md5加密了用户的密码,当我每次尝试登录时登录页面都说密码错误,所以我检查了md5哈希是否与数据库,但它不是,我确定密码是正确的。我在登录页面和注册页面也使用相同的代码:$password = md5($password)
【问题讨论】:
-
问题是“为什么”你使用 MD5?密码存储不再安全,请使用
password_hash()/password_verify() -
我猜你的列太短了,无法存储完整的哈希值。另请注意
md5不是加密并且已过时。添加您的代码可能有助于解决问题。 -
我尝试使用 password_hash 顺便说一句,我自己做的,只是为了好玩,我不太关心安全性,但感谢您提供的信息
-
“我尝试使用 password_hash” - MD5 和
password_hash()'d pw 是两种不同的动物。问题不清楚并且缺乏细节/代码等。“我并不真正关心安全” - 你应该。 -
仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。而是使用随机盐迭代 HMAC 约 100 毫秒的持续时间,然后将盐与哈希一起保存。使用
PBKDF2、Rfc2898DeriveBytes、password_hash、Bcrypt等函数或类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。对于 PHP,最简单、最安全的方法是使用password_hash和password_verify。
标签: php pdo hash md5 registration