Laravel 加密
加密是一种使用某些算法将明文转换为消息的过程,以便任何第三方用户无法读取信息。这对于传输敏感信息非常有帮助,因为入侵者很少有机会针对传输的信息进行攻击。
加密是通过一种称为 密码学 的过程来执行的。要加密的文本称为 明文 ,加密后获得的文本或消息称为 密文 。将密文转换为明文的过程称为 解密 。
Laravel使用 AES-256 和 AES-128 加密器,使用Open SSL进行加密。 Laravel中包含的所有值都使用协议 消息认证码 进行签名,以便一旦加密,底层值就无法被篡改。
配置
在Laravel中生成密钥的命令如下所示 −
请注意,该命令使用PHP安全随机字节生成器,您可以在下面给出的屏幕截图中看到输出结果 –
上述命令用于生成可用于 Web 应用的密钥。请查看下面显示的屏幕截图。
注意
加密的值在 config/app.php 文件中正确对齐,该文件包含两个加密参数,分别为 key 和 cipher 。如果使用该密钥加密的值未正确对齐,所有使用 Laravel 加密的值都将不安全。
加密过程
可以通过 Laravel 类的控制器使用 encrypt helper 来对值进行加密。这些值使用 OpenSSL 和 AES-256 密码进行加密。所有加密的值都会使用消息身份验证码(MAC)进行签名,以检查加密字符串是否被修改。
以下代码显示在控制器中,并用于存储一个秘密或敏感消息。
解密过程
通过 解密助手 进行值的解密。观察以下代码行-
请注意,如果解密过程因使用无效的MAC而无法成功,则会抛出适当的异常。