arzeroid/laravel-model-ssh-encryptable

一个简单的特质,在将属性保存到数据库之前使用公钥加密属性,并在使用属性值之前使用私钥解密属性

v1.2 2020-02-26 09:59 UTC

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"

用法

  1. 将此特质添加到您的模型中,并在 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',
    ];
    ...
}
  1. 在 .env 文件中设置 PUBLIC_KEY 变量以配置公钥
PUBLIC_KEY=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDL/6Kf7FxMR68WllFaKMfFLOmScFZFUOvjRaKuVOdOt6t+sqPUxqcXbPakvtqEY/RcavVs7Of8ae3qSIiwxgialtGVfMzTMU39GlmAkKZ97HCvZ+DX0lMHZ0EXghBqnn0gm7+5GsiHJZ/ImFiPJkeA74F/3y6cppkgpIgGQrH5wQIDAQAB
  1. 在缓存中设置 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');
        ...
    }
}