Heim > Artikel > Backend-Entwicklung > PHP-Verschlüsselung: Passwort-Hashing-API
Nach PHP 5.5 wurde die Passwort-Hashing-API eingeführt, um gehashte Passwörter zu erstellen und zu überprüfen. Sie ist im Kernel enthalten und erfordert keine Erweiterungsinstallation und -konfiguration. Es stehen hauptsächlich vier Funktionen zur Verfügung:
● passwort_hash(): Erstellen Sie einen Hash des Passworts
● passwort_verify(): Überprüfen Sie, ob das Passwort mit dem Hash übereinstimmt; >● passwort_needs_rehash(): Prüft, ob der angegebene Hash mit der angegebenen Option übereinstimmt.
● passwort_get_info(): Gibt relevante Informationen über den angegebenen Hash zurück.
1.
password_hash(string password, int algo [, array options])
Verwenden Sie einen Einweg-Hashing-Algorithmus mit ausreichender Stärke, um einen Hash des Passworts zu generieren. Diese Funktion ist mit crypt() kompatibel, d. h. der von crypt() generierte Hash-Wert kann mithilfe der zugehörigen Funktionen der Passwort-Hashing-API überprüft werden.
● Passwort: Benutzerpasswort.
● algo: Konstante des kryptografischen Algorithmus. Zu den Werten gehören:
● PASSWORD_DEFAULT: Bcrypt-Algorithmus verwenden. Das endgültige generierte Ergebnis kann 60 Zeichen überschreiten.
● PASSWORD_BCRYPT: Verwenden Sie den CRYPT_BLOWFISH-Algorithmus, um den Hash zu erstellen. Das Endergebnis ist eine 60-stellige Zeichenfolge oder FALSE bei einem Fehler.
● Salt: Geben Sie den Salt-Wert für gehashte Passwörter manuell an. Wenn es weggelassen wird, generiert die Funktion automatisch einen zufälligen Salt-Wert für jeden Passwort-Hash. Dieses Element wurde in PHP 7.0 aufgegeben.
● Kosten: stellt die vom Algorithmus verwendeten Kosten dar. Der Standardwert ist 10 und kann entsprechend den tatsächlichen Bedingungen erhöht werden.
2.
password_verify(string password, string hash)
● Passwort: Vom Benutzer bereitgestelltes Passwort.
● Hash: Hash-Wert, der von „password_hash()“ erstellt wurde. Gibt TRUE zurück, wenn eine Übereinstimmung vorliegt, andernfalls FALSE. Timing-Angriffe funktionieren bei dieser Funktion nicht.
3,
password_needs_rehash(string hash, integer algo [, array opitons])
● Hash: der von password_hash();
● Algo: kryptografische Algorithmuskonstanten;
● Optionen: Ein assoziatives Array, das relevante Optionen enthält.
4,
: Von password_hash() generierter Hash. Gibt ein assoziatives Array zurück, das drei Elemente enthält:password_get_info(string hash) hash
● algo: kryptografische Algorithmuskonstante
● algoName: Algorithmusname;
● Optionen: werden beim Aufruf von „password_hash()“-Optionen bereitgestellt.
Beispiel
$str = 'chicken,run!'; $pwd1 = password_hash($str, PASSWORD_BCRYPT); $pwd2 = crypt($str); var_dump(password_verify('chicken,run!', $pwd1)); // 输出 true var_dump(password_verify('chicken,ran!', $pwd1)); // 输出 false var_dump(password_verify($str, $pwd2)); // 输出 true var_dump(password_needs_rehash($pwd1, PASSWORD_BCRYPT, ['cost'=>10])); // 输出 false,因为 password_hash() 在加密时,出来默认 cost 为 10 外,还会指定随机的盐值
Weitere programmbezogene Inhalte finden Sie in der Spalte
Einführung in die Programmierungauf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonPHP-Verschlüsselung: Passwort-Hashing-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!