rahulshibu / laravel-model-encrypter
提供数据库模型属性加密/解密
dev-master
2020-05-15 11:45 UTC
Requires
- php: >=7.1
- ext-openssl: *
This package is auto-updated.
Last update: 2024-09-15 21:32:56 UTC
README
此包旨在加密和解密Eloquent模型属性的值。
主要功能
- 加密,解密数据库字段中存储的值
- 使用标准的Laravel加密服务
- 易于配置
要求
- Laravel: 6.0及以上
- PHP: 7.1及更高版本
数据库模式
加密值以纯文本形式存储,因此在大多数情况下比未加密的值占用更多空间。建议将表列更改为TEXT类型。如果您想使用VARCHAR或CHAR列类型,仍需要检查加密值是否适合。
注意
如果您的数据库中当前有未加密的数据,并且已将列添加到$encryptable中,请不要担心 - 它们将按原样返回。
在保存值时,将加密,并且一切都会正常工作。
安装
通过Composer命令行
$ composer require rahulshibu/laravel-model-encrypter
用法
- 在任何您希望使用加密的Eloquent模型中使用
LaravelModelEncrypter\Traits\DBEncryptor特质 - 定义一个包含加密属性列表的
protected $encryptable数组。 - 在.env文件中定义加密密钥。默认加密密钥为空。
例如
模型
use LaravelModelEncrypter\Traits\DBEncryptor;
class Client extends Eloquent {
use DBEncryptor;
/** @var array The attributes that should be encrypted/decrypted */
protected $encryptable = [
'id_number',
'email',
];
}
ENV
ENCRYPT_KEY=abcd1234
- 您可以使用Laravel的原生$casts将解密后的值转换为类型
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。