MySQL - 更改密码 - 不应该使用旧的PW

时间:2014-10-15 13:26:54

标签: mysql database passwords compare workbench

问题是我更改了mysql-db-user的密码并且可以使用旧密码 - 但这是我想要禁止的。

示例:

  • 旧密码:"测试" (在DB中加密 - 如何将其与新PW进行比较?)

  • 新密码:"测试" - >应该给出错误,因为它与旧的PW

  • 相同

如何将旧密码与新密码进行比较?或者MySQL-Workbench的设置中有一个选项吗?非常感谢提前!

编辑: 我正在考虑更改mysql.user

中列出的数据库用户的密码

3 个答案:

答案 0 :(得分:1)

我不确定你的工作流程,但在php中,你应该可以做类似

的事情
$email = $_POST['email'] /*email posted from "password change" page*/

$query = mysqli_query($db,"SELECT `password` FROM `users` WHERE `email` = '$email'");
$result = mysqli_num_rows($query);

$new_password = $_POST['new_password'] /*this is your new password*/

if( $new_password == $result['password']){
    /*password is the same as previous*/
} else {
    /*password is new*/
}

代码未经过测试,但如果不起作用则应该关闭

答案 1 :(得分:0)

如果FLUSH PRIVILEGES不能创建新数据库,然后以这种方式进行比较?

答案 2 :(得分:0)

好的,我明白了 - 这是一个简单的解决方案:

首先,我要求输入用户名的旧密码,并将输入与用户想要设置的新密码进行比较。如果两者都相同我的应用程序会抛出错误。例如:

旧PW:“测试” 新PW:“测试” - >错误:旧PW ==新PW

也许在MySQL Workbench中有一个选项 - 但我没有找到类似的东西。