Heim  >  Artikel  >  PHP-Framework  >  Was ist die Verschlüsselungsmethode von Laravel?

Was ist die Verschlüsselungsmethode von Laravel?

青灯夜游
青灯夜游Original
2021-12-21 11:23:054766Durchsuche

Laravels Verschlüsselungsmethode: 1. Verwenden Sie Hash, die Syntax „bcrypt(‘Text, der verschlüsselt werden muss‘)“ oder „Hash::make(‘Text, der verschlüsselt werden muss‘)“ 2. Verwenden Sie den Verschlüsselungscode von Laravel, die Syntax „ encrypt('Text, der verschlüsselt werden muss')“.

Was ist die Verschlüsselungsmethode von Laravel?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Laravel 6-Version, DELL G3-Computer.

Die beiden Verschlüsselungsmethoden von Laravel

Hash

Laravels Hash bietet sichere Bcrypt- und Argon2-Hashing-Algorithmen zum Speichern von Benutzerkennwörtern.

Hinweis: Bcrypt ist eine ausgezeichnete Wahl für das Hashing von Passwörtern, da sein „Arbeitsfaktor“ einstellbar ist, was bedeutet, dass mit zunehmenden Hardwarefunktionen auch der Zeitaufwand für die Hash-Erstellung zunimmt.

Konfiguration

Wenden Sie die Standard-Hash-Treiberkonfiguration in der Konfigurationsdatei config/hashing.php an. Derzeit werden zwei Treiber unterstützt: Bcrypt und Argon2.

Hinweis: Der Argon2i-Treiber erfordert PHP 7.2.0 oder höher und der Argon2id-Treiber erfordert PHP 7.3.0 oder höher.

Erste Methode

bcrypt('admin888')

Zweite

use Illuminate\Support\Facades\Hash;
$pwd = Hash::make('admin888');    //加密存储

Authentifizierungsmethode

if (Hash::check('qwe123456', $pwd)) {
    // 密码匹配...
}

public function login()
{
    $credentials = request(['email', 'password']);

    if (! $token = auth('api')->attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }

    return $this->respondWithToken($token);
}

Verschlüsselung

Laravels Verschlüsselungsgerät verwendet OpenSSL zur Bereitstellung 6- und AES-128-Verschlüsselung. Es wird dringend empfohlen, die eigenen Verschlüsselungseinstellungen von Laravel zu verwenden und nicht zu versuchen, einen eigenen „selbst entwickelten“ Verschlüsselungsalgorithmus einzuführen. Alle von Laravel verschlüsselten Werte werden mit einem Message Authorization Code (MAC) signiert, sodass der zugrunde liegende Wert nach der Verschlüsselung nicht mehr geändert werden kann.

Konfiguration

Bevor Sie den Encryptor von Laravel verwenden, müssen Sie die Schlüsseloption in der Konfigurationsdatei config/app.php auf eine 32-Bit-Zufallszeichenfolge setzen. Dieser Schlüssel kann mit dem Befehl php artisan key:generate generiert werden, der den sicheren Zufallsbytegenerator von PHP verwendet, um den Wert des Schlüssels zu erstellen. Wenn dieser Wert nicht festgelegt ist, sind alle mit Laravel verschlüsselten Werte unsicher.

Verschlüsselung

Sie können Daten mit der Hilfsfunktion verschlüsseln verschlüsseln, alle verschlüsselten Werte werden mit OpenSSL und AES-256-CBC-Verschlüsselung verschlüsselt. Darüber hinaus werden alle verschlüsselten Werte mit einem Message Authentication Code (MAC) signiert, um jegliche Änderung der verschlüsselten Zeichenfolge zu verhindern.

encrypt('密码')

Verschlüsselung ohne Serialisierung

Verschlüsselte Werte werden während der Verschlüsselung von der Serialisierungsfunktion serialize verarbeitet, was die Verschlüsselung von Objekten und Arrays ermöglicht. Daher müssen verschlüsselte Daten, die von Nicht-PHP-Clients empfangen werden, deserialisiert werden.

Wenn Sie Daten ohne Serialisierung ver- und entschlüsseln möchten, können Sie die von der Crypt-Fassade bereitgestellten Methoden encryptString und decryptString verwenden:

use Illuminate\Support\Facades\Crypt;

$encrypted = Crypt::encryptString('Hello world.');

$decrypted = Crypt::decryptString($encrypted);

Decryption

Sie können die Hilfsfunktion decrypt verwenden, um die verschlüsselten Daten zu entschlüsseln. Wenn der Wert nicht entschlüsselt werden kann, beispielsweise der MAC ungültig ist, wird eine IlluminateContractsEncryptionDecryptException ausgelöst:

use Illuminate\Contracts\Encryption\DecryptException;

try {
    $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
    //
}

Verwandte Empfehlungen: Die neuesten fünf Laravel-Video-Tutorials

Das obige ist der detaillierte Inhalt vonWas ist die Verschlüsselungsmethode von Laravel?. 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