zhengcai/encrypt
Composer 安装命令:
composer require zhengcai/encrypt
包简介
A simple Laravel SM4 encryption and authentication class.
README 文档
README
一个简单的laravel服务器到服务器api签名和验证类
Installation
Pull this package in through Composer.
or run in terminal:
composer require zhengcai/encrypt
将配置文件复制到config目录下,允许同时配置多套规则
php artisan vendor:publish --provider="Zhengcai\Encrypt\EncryptServiceProvider"
加载完composer包后建议手动清除编译的类文件和服务容器缓存 php artisan clear-compiled
Usage
Laravel usage
// 引用composer命名
use Zhengcai\Encrypt\Facades\Encrypt;
$data = ['key' => '测试内容1', 'love' => 'ILOVEYOU!!!'];
$configArray = [
//SM4 使用的ecb 模式,并且使用TOKEN_KEY字段
'TOKEN_KEY' => 'F5A74513CEF42A3A', // 加密随机串,长度应大于等于16位
'TOKEN_EXPIRE' => 86400 * 31, // token 有效期单位秒
'TOKEN_RENEW' => false, // token是否自动续期(验证通过后有效期自动续签)
'TOKEN_PREFIX' => 'TOKEN_PREFIX_%s_%s', // token缓存前缀
'TOKEN_ISS' => 'zy-scheduling', // token签发者标识
'TOKEN_ALG' => 'HS256', // token加密算法 ES384,ES256,HS256,HS384,HS512,RS256,RS384,RS512
];
try {
// Encrypt::server('test') 为读取config目录下encrypt.php
// 如果不想使用此方式 可以 new Encrypt($configArray) 将配置数组传递进去
// 普通签名算法
/**
* 签名加密方法 $data 为数据,$appKey 公钥, $appSecret 为私钥
* Encrypt::createSign(array $data, string $appKey, string $appSecret)
*
* 签名严重方法 $data 为数据,$appSecret 为私钥,$timeDiff 为所允许的时间差
* Encrypt::checkVerify(array $data, string $appSecret, $timeDiff = 300)
*/
/**
* Desc: SM4 加密采用ecb 模式 blockSize为16块
* 前端可以使用 npm install gm-crypt
* @param string|array $data 需要加密的数据
* @return string 加密后的结果
* User: 青山有木
* Date: 2023/8/11
* Email: yz_luck@163.com
*/
$hex = Encrypt::server('test')->SM4Encrypt($data);
// 解密
$hex = Encrypt::server('test')->SM4Decrypt($hex);
/**
* Desc: 生成JwtToken makeJwtToken方法
* @param string|numeric $userId 用户唯一标识
* @param array $DS 需要生成token的数据
* @param string $layered 模块标识 默认User
* @return array
* User: 青山有木
* Date: 2023/8/11
* Email: yz_luck@163.com
*/
$server = Encrypt::server('test')->makeJwtToken(1,$data);
/**
* verifyToken 验证方法此方法如果验证token失败会抛出异常
* $exception->getCode() 90001 => token无效 ,90002 => 当前token已过期 , 99999 => 无法调用缓存
* Desc: 验证token
* @param string $token token串
* @return array
* @throws Exception
* User: 青山有木
* Date: 2023/8/11
* Email: yz_luck@163.com
*/
$server = Encrypt::server('test')->verifyToken($server['token']);
/**
* Desc: 清除用户Token clearToken方法
* @param string|numeric $userId 用户唯一标识
* @param string $token token串
* @param string $layered 模块标识 默认User
* @return bool
* User: 青山有木
* Date: 2023/8/11
* Email: yz_luck@163.com
*/
$server = Encrypt::server('test')->clearToken(1,$server['token']);
}catch (\Exception $exception){
// 非laravel框架则会抛出无法使用cache的异常
dd($exception->getMessage());
}
dd($server);
zhengcai/encrypt 适用场景与选型建议
zhengcai/encrypt 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 38 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 10 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「laravel」 「encrypt」 「verify」 「sign」 「sm4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 zhengcai/encrypt 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 zhengcai/encrypt 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 zhengcai/encrypt 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Encrypted symfony entity's by verified and standardized libraries
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
A PSR-7 compatible library for making CRUD API endpoints
♺ Laravel Nova Hashids card. Convert your ids.
A library for reading KeePass 2.x databases
A PHP library for RSA encryption and decryption using the OpenSSL extension
统计信息
- 总下载量: 38
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 22
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-10-19