Citat:
Ursprungligen postat av Jim_Westergren
Här är den kod jag skrev för att göra detta. Hoppas den kan hjälpa andra.
<?php
echo "Startar konvertering ...<br><br>";
$sql_host = 'subdomän.domän.se';
$sql_database = 'name_of_db';
$sql_username = 'username';
$sql_password = 'password';
$sql_table_name = 'name_of_table';
// Ta en fras härifrån: https://api.wordpress.org/secret-key/1.1/salt/
$salt = "din fras kommer här";
$mysql_connect = mysql_connect($sql_host, $sql_username, $sql_password);
mysql_select_db($sql_database, $mysql_connect);
// Namn på kolumner nedan kan behöva korrigeras:
$result = mysql_query("SELECT username, password FROM ".$sql_table_name."");
while($row = mysql_fetch_array($result)) {
$new_hash = md5($salt.$row['password']);
mysql_query("UPDATE ".$sql_table_name." SET password = '".$new_hash."' WHERE username = '".$row['username']."'");
}
echo "Konverting klar";
?>
<pre>
Ändra nu följande:
-----------------------
Ändra din inloggning från:
if(md5($_POST['password']) == $password) {
// Inloggad
}
Eller liknande som du har till följande istället:
$salt = "din fras kommer här";
if(md5($salt.md5($_POST['password'])) == $password) {
// Inloggad
}
Radera sedan denna filen från servern!
</pre>
|
1. MD5 är dock inte en framtidsäker lösning, om man kostar på sig att skriva en ny inloggningsrutin tycker jag man bör byta till SHA256 eller en riktig KDF.
2. Saltet bör läggas efter lösenordet för att försvåra bruteforce