Méthode de cryptage de Laravel : 1. Utilisez Hash, la syntaxe "bcrypt('Texte qui doit être crypté')" ou "Hash::make('Text qui doit être crypté')" 2. Utilisez le crypteur de Laravel, la syntaxe " encrypt('Texte à chiffrer')".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Laravel 6, ordinateur DELL G3.
Hash
Laravel's Hash fournit des algorithmes de hachage sécurisés Bcrypt et Argon2 pour stocker les mots de passe des utilisateurs.
Remarque : Bcrypt est un excellent choix pour hacher des mots de passe car son « facteur de travail » est réglable, ce qui signifie qu'à mesure que les capacités matérielles augmentent, le temps passé à générer le hachage augmentera également.
Configuration
Appliquez la configuration du pilote de hachage par défaut dans le fichier de configuration config/hashing.php Actuellement, deux pilotes sont pris en charge : Bcrypt et Argon2.
Remarque : le pilote Argon2i nécessite PHP 7.2.0 ou supérieur, et le pilote Argon2id nécessite PHP 7.3.0 ou supérieur.
Première méthode
bcrypt('admin888')
Deuxième
use Illuminate\Support\Facades\Hash; $pwd = Hash::make('admin888'); //加密存储
Méthode de vérification
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); }
Cryptage
Le chiffreur de Laravel utilise OpenSSL pour fournir AES-256 et 8 cryptage. Il est fortement recommandé d'utiliser les propres paramètres de cryptage de Laravel et de ne pas essayer d'introduire votre propre algorithme de cryptage « maison ». Toutes les valeurs chiffrées de Laravel sont signées à l'aide d'un code d'autorisation de message (MAC) afin que la valeur sous-jacente ne puisse pas être modifiée une fois chiffrée.
Configuration
Avant d'utiliser le chiffreur de Laravel, vous devez définir l'option clé dans le fichier de configuration config/app.php sur une chaîne aléatoire de 32 bits. Cette clé peut être générée à l'aide de la commande php artisan key:generate, qui utilise le générateur d'octets aléatoires sécurisé de PHP pour construire la valeur de la clé. Si cette valeur n'est pas définie, toutes les valeurs cryptées par Laravel ne sont pas sécurisées.
Cryptage
Vous pouvez crypter les données à l'aide de la fonction d'assistance Encrypt, toutes les valeurs cryptées sont cryptées à l'aide du chiffrement OpenSSL et AES-256-CBC. De plus, toutes les valeurs chiffrées sont signées avec un code d'authentification de message (MAC) pour empêcher toute modification de la chaîne chiffrée.
encrypt('密码')
Cryptage sans sérialisation
Les valeurs cryptées seront traitées par la fonction de sérialisation sérialiser pendant le cryptage, permettant le cryptage des objets et des tableaux. Par conséquent, les données chiffrées reçues par les clients non PHP doivent être désérialisées.
Si vous souhaitez crypter et déchiffrer des données sans sérialisation, vous pouvez utiliser les méthodes encryptString et decryptString fournies par la façade Crypt :
use Illuminate\Support\Facades\Crypt; $encrypted = Crypt::encryptString('Hello world.'); $decrypted = Crypt::decryptString($encrypted);
Decryption
Vous pouvez utiliser la fonction d'assistance decrypt pour décrypter les données cryptées. Si la valeur ne peut pas être déchiffrée, par exemple si le MAC n'est pas valide, une exception IlluminateContractsEncryptionDecryptException sera levée :
use Illuminate\Contracts\Encryption\DecryptException; try { $decrypted = decrypt($encryptedValue); } catch (DecryptException $e) { // }
Recommandations associées : Les cinq derniers didacticiels vidéo Laravel
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!