将mysql数据库中的纯文本密码转换为bcrypt加密密码


Convert plain text password in mysql database to bcrypt encrypted password

我有大约500条记录的mysql数据库。有一列password当前包含纯文本密码。

我想将这些密码隐藏到encrypted with bcrypt。如何从phpmyadmin执行此操作?

附加的第二个问题:登录页面编码是什么来检查这个加密密码并让会员进入?(我使用的是mysqli)

首先,备份数据库。。。然后你必须做这样的事情。。。

由于不了解您的应用程序,我只能举个例子,这可能在您当前的生产代码中不起作用。

$servername = "YOUR_SERVER";
$username = "YOUR_USERNAME";
$password = "YOUR_PASSWORD";
$dbname = "YOUR_DB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$sql = "SELECT id, password FROM your_table";
$result = $conn->query($sql);
$newPasswords = [];
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
       $newPasswords[] = ["id" => $row["id"], "newPass" = "YOUR_PASSWORD_ENCRYPTED_WITH_BCRYPY"];  
    }
} else {
    echo "0 results";
}
foreach($newPasswords as $user) {
$sql = "UPDATE your_table SET password = $user["newPass"] WHERE id = $user["id"]";
$result = $conn->query($sql);
}
$conn->close();

之后,你可以更改你的应用程序,让用户登录,并使用新的加密密码。要在PHP中使用bcrypt进行加密,请查看此处。

再次请记住在执行任何操作之前备份您的数据库