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

时间:2016-08-03 06:06:40

标签: php encryption mysqli bcrypt

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

我想将这些密码转换为encrypted with bcrypt。我怎么能从 phpmyadmin

这样做

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

1 个答案:

答案 0 :(得分:0)

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

不知道你的应用程序我只能举个例子,这可能不适用于你当前的生产代码。

$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进行加密,请查看here

再次记得在任何操作之前备份数据库!