繁体   English   中英

将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进行加密,请参见此处

再次记住,在进行任何操作之前都要备份数据库!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM