承接了一个新项目,需要继承旧的用户数据。
账号密码解密使用了\yii\base\Security::generatePasswordHash($password, $cost)方法。
generatePasswordHash($password, $cost = null)
//php的生成密文
//默认的cost是13,是时间复杂度
return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]);
账号密码解密使用了\yii\base\Security::validatePassword($password, $db_pwd)方法。
\yii\base\Security::validatePassword($password, $db_pwd);
//即
password_verify($password, $db_pwd);
其中$password是明文,$data是加密值。
JAVA验证代码
1. 注意要替换$2y$,$2y$,$2a$,$2b$不影响散列值。
public boolean match(String password, String db_pwd) {
//'$2y$'替换成'¥2a$'
String u = "$2a".concat(db_pwd.substring(3));
return BCrypt.checkpw(password, u);
}
本文介绍在Yii框架中如何使用Security类进行账号密码的加解密操作,包括generatePasswordHash方法生成密文及validatePassword方法验证密码,并提供JAVA环境下验证密码的实现方式。
848

被折叠的 条评论
为什么被折叠?



