mgpl2311 / laravel-db-encrypter
提供数据库模型属性加密/解密
v3.0.0
2023-11-02 14:33 UTC
Requires
- php: >=8.1
- laravel/framework: ^10.0
This package is auto-updated.
Last update: 2024-08-31 00:33:35 UTC
README
此包是为了加密和解密Eloquent模型属性的值而创建的。
捐赠
如果您认为这个包对您有帮助,请捐赠。谢谢。
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SPYLWZ8Y5E4JE&source=url
主要特性
- 加密和解密存储在数据库字段中的值
- 使用标准的Laravel加密服务
- 易于配置
要求
- Laravel: 6.0 及以上
- PHP: 7.1 及以上
数据库模式
加密的值以纯文本形式存储,因此在大多数情况下比未加密的值占用更多空间。建议将表列更改为 TEXT
类型。如果您想使用 VARCHAR
或 CHAR
列类型,您仍然需要检查加密值是否适合。
注意
如果您数据库中当前有未加密的数据和已添加到 $encryptable
的列,请不要担心 - 它们将按原样返回。
在保存值时,将进行加密,一切都将正常工作。
安装
通过Composer命令行
$ composer require betterapp/laravel-db-encrypter
用法
- 在任何希望使用加密的Eloquent模型中使用
betterapp\LaravelDbEncrypter\Traits\EncryptableDbAttribute
特性 - 定义一个包含加密属性列表的
protected $encryptable
数组。
例如
use betterapp\LaravelDbEncrypter\Traits\EncryptableDbAttribute; class Client extends Eloquent { use EncryptableDbAttribute; /** @var array The attributes that should be encrypted/decrypted */ protected $encryptable = [ 'id_number', 'email', ]; }
- 您可以使用Laravel的原始$casts来转换解密值
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。