我有大约500条记录的mysql数据库。有一列password
,目前包含纯文本密码。
我想将这些密码转换为encrypted with bcrypt
。我怎么能从 phpmyadmin ?
第二个附加问题:检查此加密密码并让会员进入的登录页面编码是什么? (我正在使用mysqli)
答案 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。
再次记得在任何操作之前备份数据库!