加密是使用某些算法将纯文本转换为消息的过程,使得任何第三方用户都无法读取该信息。这对于传输敏感信息很有帮助,因为入侵者瞄准传输的信息的机会较小。
使用称为密码术的过程进行加密。待加密的文本称为明文,加密后获得的文本或消息称为密文。将密文转换为纯文本的过程称为解密。
Laravel 使用AES-256 和AES-128 加密器,它使用 Open SSL 进行加密。 Laravel 中包含的所有值都使用协议消息验证码进行签名,因此底层值一旦加密就无法被篡改。
用于在 Laravel 中生成key的命令如下所示 -
php artisan key:generate
请注意,此命令使用 PHP 安全随机字节生成器,您可以看到如下屏幕截图所示的输出 -
上面给出的命令有助于生成密钥可以在网络应用程序中使用。观察下面显示的屏幕截图 -
加密值在config/app.php文件中正确对齐,其中包括两个加密参数,即key和cipher。如果使用此密钥的值未正确对齐,则 Laravel 中加密的所有值都将不安全。
可以通过在 Laravel 类的控制器中使用加密助手来完成值的加密。这些值使用 OpenSSL 和 AES-256 密码进行加密。所有加密值均使用消息身份验证代码 (MAC) 进行签名,以检查加密字符串是否有任何修改。
下面显示的代码在控制器中提到,用于存储秘密或敏感消息。
填充([ '秘密' => 加密($request->秘密) ])->保存(); } }
值的解密是使用解密助手完成的。观察以下代码行 -
use IlluminateContractsEncryptionDecryptException; // 在外观中抛出解密异常 尝试 { $decrypted=decrypt($encryptedValue); } catch(DecryptException $e){ // }
请注意,如果由于使用无效的 MAC 导致解密过程不成功,则会抛出适当的异常。
以上是Laravel - 加密的详细内容。更多信息请关注PHP中文网其他相关文章!