Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Verschlüsselung: Passwort-Hashing-API

PHP-Verschlüsselung: Passwort-Hashing-API

藏色散人
Freigeben: 2023-04-08 12:50:02
nach vorne
4579 Leute haben es durchsucht

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 外,还会指定随机的盐值
Nach dem Login kopieren

Weitere programmbezogene Inhalte finden Sie in der Spalte

Einführung in die Programmierung

auf 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!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage