Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Passwortverschlüsselung

PHP implementiert die Passwortverschlüsselung

小云云
小云云Original
2018-05-15 16:32:354387Durchsuche

In diesem Artikel werden hauptsächlich Beispiele für die Implementierung der Passwortverschlüsselung in PHP vorgestellt. Aufgrund des schnellen Hash-Algorithmus wird nicht empfohlen, die Funktion md5 zum Abrufen von Passwörtern zu verwenden Generieren Sie einen ausreichend starken Salzwert und nehmen Sie automatisch die entsprechenden Züge vor. passwort_hash() ist ein einfacher Wrapper um crypt() und ist vollständig kompatibel mit vorhandenen Passwort-Hashes. Es wird daher empfohlen, „password_hash()“ zu verwenden.

Erstellen Sie einen Hash des Passworts

string password_hash ( string $password , integer $algo [, array $options ] )

Überprüfen Sie, ob das Passwort mit dem Hash übereinstimmt

boolean password_verify ( string $password , string $hash )

Beispiel:

<?php$hash = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
if (password_verify(&#39;rasmuslerdorf&#39;, $hash)) {    
echo &#39;Password is valid!&#39;;
} else {    
echo &#39;Invalid password.&#39;;
}

Nutzungstipps :

Legen Sie den Salt-Wert beim Erstellen eines Passworts nicht selbst fest

Grund: Es wird dringend empfohlen, den Salt-Wert (Salt) für diese Funktion nicht selbst zu generieren. Solange es nicht gesetzt ist, wird automatisch ein sicherer Salzwert erstellt. Wie oben erwähnt, führt die Bereitstellung der Salt-Option in PHP 7.0 zu einer veralteten Warnung. Die Möglichkeit, Salt-Werte manuell bereitzustellen, wird in zukünftigen PHP-Versionen möglicherweise entfernt.

Führen Sie Benchmark-Tests auf Ihrem eigenen Server durch und passen Sie den Kostenparameter an, bis der Funktionszeit-Overhead weniger als 100 Millisekunden (Millisekunden) beträgt.

Beispiel:

<?php/**
 * 这个例子对服务器做了基准测试(benchmark),检测服务器能承受多高的 cost
 * 在不明显拖慢服务器的情况下可以设置最高的值
 * 8-10 是个不错的底线,在服务器够快的情况下,越高越好。
 * 以下代码目标为  ≤ 100 毫秒(milliseconds),
 * 适合系统处理交互登录。
 */$timeTarget = 0.1; // 100 毫秒(milliseconds) 
 $cost = 8;do {    
 $cost++;    
 $start = microtime(true);
    password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);    
    $end = microtime(true);
} while (($end - $start) < $timeTarget);
echo "Appropriate Cost Found: " . $cost;

Ergebnis:

Appropriate Cost Found: 10

Verwandte Empfehlungen:

Analyse des PHP-Benutzerpasswort-Verschlüsselungsalgorithmus

Mehrere Möglichkeiten der Passwortverschlüsselung in PHP_php-Beispielen

PHP-Passwortverschlüsselung ist langsam

Das obige ist der detaillierte Inhalt vonPHP implementiert die Passwortverschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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