Laravel 和 Lumen 的加密工具

2.1.0 2020-02-17 08:28 UTC

README

Crypto - Laravel 和 Lumen 的强大且优雅的加密工具

Build Status Maintainability Packagist license

Crypto 工具集提供了一组方便的方法,用于加密、解密、生成 uuid、生成应用密钥等。

作者

要求

  1. PHP 5.6+
  2. OpenSSL
  3. Laravel 5.3+ 或 Lumen
  • 对于 Lumen,您必须启用 Facades: $app->withFacades()

安装

开始一个新的 Laravel 项目

composer create-project laravel/laravel your-project-name

然后运行以下命令添加 Crypto

composer require "sierratecnologia/crypto"

文档

https://docs.sierratecnologia.ca/others/crypto

许可证

Crypto 是开源软件,根据 MIT 许可证 发布

错误报告和功能请求

请尽可能详细地提供有关提交问题和功能请求的详细信息

免责声明

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任基于合同、侵权或其他方式,无论该责任是否因软件或其使用或其他方式而产生。

Laravel Encryptable 特性

提供一种特性,用于在 Laravel 模型中解密或加密值。

用法

将特性添加到您的模型中,定义 $encrypted 数组,其中包含要加密和解密的字段。

namespace App;

use Cheezykins\LaravelEncryptable\Traits\Encryptable;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model {
    use Encryptable;

    protected $encrypted = [
        'email'
    ];
}

然后在用法中

$model = new MyModel();
$model->name = 'Chris';
$model->email = 'chris@test.com';
$model->save();

数据库中的 email 字段现在是加密值。

eyJpdiI6IkRZS0lOUlwvR29MbU4zN1diYzl2ZCtnPT0iLCJ2YWx1ZSI6IldEYzVUajlUcDdvVHE0M0kxdForNlE9PSIsIm1hYyI6ImY1MzQ2ZWYwNTNkZDI2YTY2MDgyMmVjZmU3MmI0MGU0NTNmMmU4NWE4OGFmYzZhYTJlYzczMWU1YTdmNzNjYjQifQ==

当检索数据时,数据将自动为您解密。

$model = MyModel::find(1);
echo $model->email;

> "chris@test.com"

其他访问模型数据的方式也是一样。

$model = MyModel::find(1);
return response()->json($model->toArray());
{
  "id": 1,
  "name": "Chris",
  "email": "chris@test.com"
}

警告

加密值是根据您在 config/app.php 中定义的 cipher 设置和 Laravel APP_KEY 存储的。如果您的应用程序密钥更改或丢失,将 无法 恢复数据。

安装

需要项目并使用它。由于不需要,因此没有服务提供者。

composer require cheezykins/laravel-encryptable