PHP Salz-und SHA256-hash für login-Passwort
Habe ich gemacht die Verschlüsselung des Passwortes in meinem script registrieren " und Sie werden in der Datenbank gespeichert, und ich muss mit Ihnen anmelden, so würde ich wollen, verwenden Sie die unverschlüsselten, um sich einzuloggen. Ich habe einige der threads hier, aber nichts hilft mir. Wie kann ich es in meinem login.php? Das Salz ist auch in der Datenbank gespeichert.
Dies ist mein register.php Skript zum verschlüsseln
$hash = hash('sha256', $password1);
function createSalt()
{
$text = md5(uniqid(rand(), TRUE));
return substr($text, 0, 3);
}
$salt = createSalt();
$password = hash('sha256', $salt . $hash);
- und das ist meine login.php mit der Saison
//Create query
$qry="SELECT * FROM member WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);
//Check whether the query was successful or not
if($result) {
if(mysql_num_rows($result) > 0) {
//Login Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_FIRST_NAME'] = $member['username'];
$_SESSION['SESS_LAST_NAME'] = $member['password'];
session_write_close();
header("location: profile.php");
exit();
}
else {
//Login failed
//error message
}
else {
die("Query failed");
}
InformationsquelleAutor der Frage Simon_says | 2013-12-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Beispiele sind aus php.net. Dank dir, ich habe auch gerade gelernt, über die neue php Hash-Funktionen.
Lesen Sie die php-Dokumentation, um herauszufinden, über die Möglichkeiten und best practices:
http://www.php.net/manual/en/function.password-hash.php
Speichern einer Passwort-hash:
Erhalten Sie den Passwort-hash:
InformationsquelleAutor der Antwort andreas
Laut php.net die Salz-option ist veraltet. PHP 7.0.0, so sollten Sie mit dem Salz, dass ist standardmäßig generiert und ist weit einfacher
Beispiel für die Speicherung des Passwortes:
$hashPassword = password_hash("password", PASSWORD_BCRYPT);
Beispiel um das Kennwort zu prüfen:
$passwordCorrect = password_verify("password", $hashPassword);
InformationsquelleAutor der Antwort anguswild
Konnte Sie nicht anmelden, weil Sie nicht die richtige solt text bei der Anmeldung Zeit.
Es gibt zwei Möglichkeiten, die erste ist die Festlegung statischer Salz, zweite wenn Sie möchten, erstellen Sie dynamische Salz, als Sie haben, zu speichern das Salz irgendwo (in der Datenbank) mit verknüpfen mit dem Benutzer.
Als Sie verketten Benutzer solt+password_hash string wird nun mit diesem Feuer Abfrage mit Benutzernamen in der Datenbank-Tabelle.
InformationsquelleAutor der Antwort Nikunj
Hier ist ein link zu Referenz http://php.net/manual/en/function.hash.php
InformationsquelleAutor der Antwort Ngend Lio
Können Sie nicht, weil Sie nicht wissen können, das Salz an eine genaue Zeit. Nachfolgend ein code, der funktioniert in der Theorie (nicht getestet für die syntaxe)
Beim einfügen :
Und für das abrufen von Benutzer :
InformationsquelleAutor der Antwort Flo354