Laravel加密 Laravel Artisan控制台 Laravel哈希 加密是一个使用一些算法将纯文本转换为消息的过程,以便任何第三个用户无法读取信息。这对传输敏感信息很有帮助,因为入侵者以传输信息为目标的可能性较小。 加密是使用称为 密码学 的过程执行的。要被加密的被称为文本 纯文本 和文本或加密之后获得的消息被称为 密文 。将密文转换为纯文本的过程称为 解密 。 Laravel使用 AES-256 和 AES-128 加密器,它使用Open SSL进行加密。包含在Laravel中的所有值都使用协议 消息认证代码 进行签名,以便在加密后,底层值不会被篡改。 组态 下面显示了用于在Laravel中生成 密钥 的命令- php artisan key:generate 请注意,该命令使用PHP安全随机字节的生成器,您可以看到如下面屏幕截图所示的输出 - 上面给出的命令有助于生成可用于Web应用程序的密钥。观察下面显示的屏幕截图 - 注意 加密值在 config / app.php 文件中正确对齐,其中包括两个加密参数,即 密钥 和 密码 。如果使用此键的值未正确对齐,则Laravel中加密的所有值都将不安全。 加密过程 可以通过在Laravel类的控制器中使用 加密助手 来完成值的 加密 。这些值使用OpenSSL和AES-256密码进行加密。所有加密值都使用消息认证码(MAC)进行签名,以检查加密字符串的任何修改。 下面显示的代码在控制器中提及,用于存储秘密或敏感消息。 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class DemoController extends Controller{ ** * Store a secret message for the user. * * @param Request $request * @param int $id * @return Response */ public function storeSecret(Request $request, $id){ $user = User::findOrFail($id); $user->fill([ 'secret' => encrypt($request->secret) ])->save(); } } 解密过程 值的 解密 是用 解密助手 完成的。遵守以下几行代码 - use Illuminate\Contracts\Encryption\DecryptException; // Exception for decryption thrown in facade try { $decrypted = decrypt($encryptedValue); } catch (DecryptException $e) { // } 请注意,如果由于使用无效的MAC而导致解密过程不成功,则会引发适当的异常。 Laravel Artisan控制台 Laravel哈希