arzeroid / laravel-model-ssh-encryptable
一个简单的特质,在将属性保存到数据库之前使用公钥加密属性,并在使用属性值之前使用私钥解密属性
v1.2
2020-02-26 09:59 UTC
Requires
- php: >=5.4.0
- phpseclib/phpseclib: ~2.0
This package is auto-updated.
Last update: 2024-09-26 20:33:03 UTC
README
一个简单的特质,在将属性保存到数据库之前使用公钥加密属性,并在使用属性值之前使用私钥解密属性
安装
只需在您的 composer.json 中添加以下行,然后运行 composer update
"arzeroid/laravel-model-ssh-encryptable": "^1.0",
或者使用以下命令通过 composer 添加
composer require "arzeroid/laravel-model-ssh-encryptable"
用法
- 将此特质添加到您的模型中,并在 encryptable 数组中设置要加密的属性
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Arzeroid\LaravelModelEncryptable\SSHEncryptable; class UserSalary extends Model { ... use SSHEncryptable; /** * The attributes that should be encrypted. * * @var array */ protected $encryptable = [ 'payroll', ]; ... }
- 在 .env 文件中设置 PUBLIC_KEY 变量以配置公钥
PUBLIC_KEY=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDL/6Kf7FxMR68WllFaKMfFLOmScFZFUOvjRaKuVOdOt6t+sqPUxqcXbPakvtqEY/RcavVs7Of8ae3qSIiwxgialtGVfMzTMU39GlmAkKZ97HCvZ+DX0lMHZ0EXghBqnn0gm7+5GsiHJZ/ImFiPJkeA74F/3y6cppkgpIgGQrH5wQIDAQAB
- 在缓存中设置 private_key 键以配置私钥
<?php namespace App\Http\Controllers; use Cache; ... class UserSalaryController extends Controllers { ... public function setKey() { Cache::forever('private_key', 'MIICXQIBAAKBgQDL/6Kf7FxMR68WllFaKMfFLOmScFZFUOvjRaKuVOdOt6t+sqPUxqcXbPakvtqEY/RcavVs7Of8ae3qSIiwxgialtGVfMzTMU39GlmAkKZ97HCvZ+DX0lMHZ0EXghBqnn0gm7+5GsiHJZ/ImFiPJkeA74F/3y6cppkgpIgGQrH5wQIDAQABAoGBAJDEPPgYl/dZ95qj2d+NiRcYJDlTlyVho8SJKkVk4zEtjno+85yPzQwGu5F2D0RcWpErJjfCd27dDYVxK++m2Xr1URVhaG9Y7NRIso2gRayG8AbwIRUu1WrRt6Kyll/Dnveoxbw/WyccmS/CicBG52G+egDubgaTcvFiaRRaABRBAkEA+l+bSevcsDNtsPEBwrdQhzr5wR82JTuGO7/HIb2s0GpPR8KnoLtHChhiBHMxINTCkHwi7AN4iUTfUK4y7d1npQJBANCVPCDKzxXJ1isVGfhBldJvyDB/xPLwkXIf3Hwaig1nSBfUFnJe8dBb2QFcF+QoyFXAvLPZ7ydiAvzpT492Du0CQQCEfzf0xKcDcBPqgYBHBS/OgL1PIC9NQNTmpbTB/FiJ6tiNx0tiWflcNE8av8MN9soIIEly0Ntm+VWcorM9AeApAkBsRkukKiM9iDyouJd2i3Uee/BLXMf75G1b9LYbphsrwgVmeS39yNN1+Xe4gPnV8mWsPhS2t9axduteJi6qpfoxAkBXBkgvBnWFaNs6fZVANE2GKdI9F5pF3Cm2eUy+90pmrwM5o2Jfiy6aRXQ9689XKNV2LSXXuP7yjQFj8mqiCD7q'); ... } }