2016-04-13 5 views
0

Ich muss überprüfen, ob $user_entered_pass IDENTIAL zu $hash_val. Bitte hilf mir?Wie md5 Passwort zu vergleichen php

<?php 
    $mypass = "Rainbow"; 
    $hash_val = md5($mypass); 

    echo $hash_val; //always 32 characters 

    $user_entered_pass = "rainbow"; 
?> 
+1

Suchen Sie in vorhandenen Bibliotheken nach Kennwort Hashing – Mihai

+1

MD5 wird jetzt als anfällig betrachtet. Ich würde vorschlagen, zu password_hash zu wechseln, was hier erläutert wird http://php.net/manual/en/function.password-hash.php – Unex

Antwort

1

Sie können $ user_entered_pass Hash und vergleichen, ich verwende diese Methode.

<?php 
    $mypass = "Rainbow"; 
    $hash_val = md5($mypass); 

    echo $hash_val; //always 32 characters 

    $user_entered_pass = "rainbow"; 

    if(md5($user_entered_pass) == $hash_val){ 
     //The passwords are equal 
    } 
?> 
0

Konvertieren Sie Benutzer eingegebenes Passwort zu MD5 und dann überprüfen. $user_entered_pass_has = md5($user_entered_pass) Dann auf Gleichheit prüfen.

0

Vergleichen Sie es mit dem identischen Operator ===, z.B .:

if ($hashFromDatabase === md5($userEnteredPasswort)) { 
    // authenticated ... 
} 

Allerdings empfehle ich Ihnen dringend, nicht md5 als Hashing-Algorithmus zu verwenden. Überprüfen Sie diese Antwort hier: Secure hash and salt for PHP passwords

Darüber hinaus empfehle ich Ihnen die Verwendung der neuen Passwort-Hash-API von PHP (password_hash() und password_verify()).