首页  >  文章  >  php框架  >  Laravel - 加密

Laravel - 加密

PHPz
PHPz原创
2024-08-27 10:51:13804浏览

加密是使用某些算法将纯文本转换为消息的过程,使得任何第三方用户都无法读取该信息。这对于传输敏感信息很有帮助,因为入侵者瞄准传输的信息的机会较小。

使用称为密码术的过程进行加密。待加密的文本称为明文,加密后获得的文本或消息称为密文。将密文转换为纯文本的过程称为解密

Laravel 使用AES-256AES-128 加密器,它使用 Open SSL 进行加密。 Laravel 中包含的所有值都使用协议消息验证码进行签名,因此底层值一旦加密就无法被篡改。

配置

用于在 Laravel 中生成key的命令如下所示 -

php artisan key:generate

请注意,此命令使用 PHP 安全随机字节生成器,您可以看到如下屏幕截图所示的输出 -

Artisan Key

上面给出的命令有助于生成密钥可以在网络应用程序中使用。观察下面显示的屏幕截图 -

注意

加密值在config/app.php文件中正确对齐,其中包括两个加密参数,即keycipher。如果使用此密钥的值未正确对齐,则 Laravel 中加密的所有值都将不安全。

加密过程

可以通过在 Laravel 类的控制器中使用加密助手来完成值的加密。这些值使用 OpenSSL 和 AES-256 密码进行加密。所有加密值均使用消息身份验证代码 (MAC) 进行签名,以检查加密字符串是否有任何修改。

Laravel - 加密

下面显示的代码在控制器中提到,用于存储秘密或敏感消息。

填充([
         '秘密' => 加密($request->秘密)
      ])->保存();
   }
}

解密过程

值的解密是使用解密助手完成的。观察以下代码行 -

use IlluminateContractsEncryptionDecryptException;

// 在外观中抛出解密异常
尝试 {
   $decrypted=decrypt($encryptedValue);
} catch(DecryptException $e){
   //
}

请注意,如果由于使用无效的 MAC 导致解密过程不成功,则会抛出适当的异常。

以上是Laravel - 加密的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn