本文目录导读:

是的,Laravel 的加密功能支持 AES-256,AES-256-CBC 是 Laravel 默认使用的加密算法。
Laravel 加密配置
加密配置
在 .env 文件中配置:
APP_KEY=base64:xxxxxxxxxxxxx
生成密钥的命令:
php artisan key:generate
支持的算法
Laravel 默认使用:
- AES-256-CBC(加密强度高,是默认选项)
- 也可以通过配置使用 AES-128-CBC
配置加密器
在 config/app.php 中:
'cipher' => 'AES-256-CBC', // 或者 'cipher' => 'AES-128-CBC',
使用示例
use Illuminate\Support\Facades\Crypt;
// 加密
$encrypted = Crypt::encrypt('敏感数据');
// 解密
$decrypted = Crypt::decrypt($encrypted);
// 自定义序列化
$encrypted = Crypt::encryptString('明文数据');
$decrypted = Crypt::decryptString($encrypted);
底层实现
Laravel 使用 PHP 的 openssl 扩展实现加密:
// 实际使用的加密方法 openssl_encrypt($value, 'AES-256-CBC', $key, 0, $iv);
安全性特点
- 初始化向量(IV):每次加密都会生成随机IV
- MAC验证:包含消息认证码防止篡改
- 序列化支持:可以加密数组、对象等复杂数据类型
重要提示
- 生成的
APP_KEY长度必须匹配算法要求(AES-256需要32字节密钥) - Laravel 会自动处理密钥的base64编码和解码
- 加密后的数据包含版本信息、IV、认证码和密文
Laravel 不仅支持 AES-256,而且将其作为默认的高安全加密方案。