引用思否的回答
框架中是这样描述的:
This key is used by the Illuminate encrypter service and should be set to a random, 32 character string, otherwise these encrypted strings will not be safe. Please do this before deploying an application!
也就是这个key是一个随机字符串,用于实现框架中的encrypt(加密)服务,例如存储用户的session,cookie等,从而确保信息安全。可以通过artisan命令将该key更新。
传送门:https://segmentfault.com/q/1010000009773300
代码测试:
使用Laravel的加密辅助函数encrypt()
encrypt()
encrypt
函数使用 Laravel 的加密器对给定的值进行加密:
$encrypted = encrypt($unencrypted_value);
加密一个值
可以使用辅助函数encrypt来加密一个值。 所有的加密值都使用 OpenSSL 和 AES-256-CBC 来进行加密。 此外, 所有加密过的值都会使用消息认证码 (MAC)来进行签名,以检测加密字符串是否被篡改过 :
代码测试:
填写APP_KEY
//加密解密
public function crypt()
{
$password = "123456";
$cryptPassword = encrypt($password);
echo $cryptPassword.PHP_EOL;
$passwordUncrypt = decrypt($cryptPassword);
echo $passwordUncrypt;
}
输出(.....是我省略了加密后的字符)
eyJpdiI6IlZESmZYVjZ0bmQ2MVBlVWIzaFNQdUE9PSIsInZhbHVlIjoidndtaVorWklUbDJqc29iamNzZ2VSZz09IiwibWFjIjoiNTEwYjRkZD......................
123456
不填写APP_KEY
输出
RuntimeException
No application encryption key has been specified.