Hacher
- Introduction
- Façade Laravel
Hash
fournit des méthodes sécurisées de cryptage de hachage Bcrypt et Argon2 pour stocker les mots de passe des utilisateurs. Si vous utilisez les classesLoginController
etRegisterController
intégrées dans votre application Laravel, elles utilisent Bcrypt pour l'enregistrement et l'authentification par défaut. {tip} Bcrypt est idéal pour hacher des mots de passe car son « coefficient de cryptage » peut être ajusté arbitrairement, ce qui signifie que le temps nécessaire pour générer un hachage peut augmenter à mesure que la puissance du matériel augmente.
{tip} Bcrypt 是哈希密码的理想选择,因为它的 「加密系数」 可以任意调整,这意味着生成哈希所需的时间可以随着硬件功率的增加而增加。 你可以在 {note} Argon2i 驱动程序需要 PHP 7.2.0 或更高版本,而 Argon2id 驱动程序则需要 PHP 7.3.0 或更高版本。 你可以通过调用 Si vous utilisez l'algorithme Bcrypt, vous pouvez utiliser l'option 如果使用 Argon2 算法,你可以在 {tip} 有关这些选项的更多信息,请查阅 PHP 官方文档。config/hashing.php< /code > Configurez le pilote de hachage par défaut dans le fichier de configuration. Trois pilotes sont actuellement pris en charge : Bcrypt
et Argon2
(variantes Argon2i et Argon2id).
🎜Hash
facade 为存储用户密码提供了安全的 Bcrypt 和 Argon2 哈希加密方式。如果你在你的 Laravel 应用程序中使用了内置的 LoginController
和 RegisterController
类,那么它们默认使用 Bcrypt 进行注册和身份认证。配置
config/hashing.php
配置文件中配置默认哈希驱动程序。目前支持三种驱动程序:Bcrypt 和 Argon2 (Argon2i and Argon2id variants)。基本用法
Hash
facade 的 make
{note} 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. Hash
Méthode make
de Facade pour chiffrer votre mot de passe : 🎜<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller;class UpdatePasswordController extends Controller{
/**
* 更新用户密码。
*
* @param Request $request
* @return Response
*/
public function update(Request $request)
{
// 验证新密码的长度
$request->user()->fill([
'password' => Hash::make($request->newPassword)
])->save();
}
}
🎜🎜Ajustez le coefficient de cryptage Bcrypt
rounds
dans la méthode make
pour configurer le coefficient de cryptage de l'algorithme. Cependant, pour la plupart des applications, la valeur par défaut est suffisante : make
方法中使用 rounds
选项来配置该算法的加密系数。然而,对大多数应用程序来说,默认值就足够了:$hashed = Hash::make('password', [
'rounds' => 12
]);
调整 Argon2 加密系数
make
方法中使用 memory
, time
和 threads
选项来配置该算法的加密系数。然后,对大多数应用程序来说,默认值就足够了:$hashed = Hash::make('password', [
'memory' => 1024,
'time' => 2,
'threads' => 2,
]);
密码哈希验证
check
方法能为您验证一段给定的未加密字符串与给定的哈希值是否一致。然而,如果您使用 Laravel 内置的 LoginController
控制器,您可能不需要直接使用这个方法,因为该控制器会自动调用这个方法:if (Hash::check('plain-text', $hashedPassword)) {
// 密码匹配
}
检查密码是否需要重新哈希
needsRehash
if (Hash::needsRehash($hashed)) {
$hashed = Hash::make('plain-text');
}
check
peut vérifier pour vous qu'une chaîne non chiffrée donnée est si le hachage donné la valeur est cohérente. Cependant, si vous utilisez le contrôleur LoginController
intégré de Laravel, vous n'aurez peut-être pas besoin d'utiliser cette méthode directement, car le contrôleur appellera automatiquement cette méthode : 🎜rrreee