lazywe / lazy-tools
基于laravel的工具脚手架,支持数据Rsa Aes双重加密
1.0.0
2020-01-16 09:39 UTC
Requires
- phpseclib/phpseclib: ^2.0
Requires (Dev)
- laravel/laravel: ^5.8
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2025-02-23 17:06:16 UTC
README
Requirement
- php >= 5.3
- Composer
- phpseclib/phpseclib
Installation
first
- composer.json 中新增如下
"repositories": [
{
"type": "vcs",
"url": "https://github.com/lazywe/lazy-tools"
}
],
composer require lazywe/lazy-tools -vvv
Second
- 加载配置
php artisan vendor:publish --provider='Lazy\Tools\ServiceProvider'
Third
基础函数
json(Code $status, string $msg, array $data);
密文模式
- 密文模式解密需要全局中间件 “lazy-decryption”
- 密文模式需要 env中新增如下
CIPHER=true #是否启用数据加密,客户端需要支持, 默认关闭 AES_KEY=84283F8F0E36BB7C4F360E068D923DFB #32位你的秘钥 ORIGINAL_DEBUG=false #是否需要显示原文 RSA_PUBLIC_KEY_PATH=public.key #系统加密的公钥 storage目录下 RSA_PRIVATE_KEY_PATH=private.key #客户端提供解密的私钥 storage目录下
请求
- 接收的 请求参数 有两个 一个是 “d” 一个是 “e”, 分别都是加密的16进制的数据
- "d" 是rsa加密的部分
- "e" 是aes加密的部分
返回
- 返回参数 有三个
- 一个是 “d” 一个是 “e”, 一个是 “f”
- “d”和“e”分别都是加密的16进制的数据
- “f”需要 ORIGINAL_DEBUG=true 的时候才能输出,调试的时候使用
- "d" 是rsa加密的部分
- "e" 是aes加密的部分
栗子
// Usage 前端部分,拿JavaScript为例, var params = { "username":"lazy", "password":"123456", }; var data = { d:"rsa加密后得16进制的数据", e:"aes使用rsa加密的秘钥将{params}加密后的16进制的数据" } $.ajax({ "url":"test", "type":"post", "timeout":3, data:data, success:(e){ console.log(e); var key = "rsa解密 e.data.d"; var params = "aes解密 e.data.e 秘钥是key"; console.log(params.username) console.log(params.password) // 输出如下 // lazy // 123456 } })
- 前端加密解密 js 版本 待定
- 前端加密解密 dart 版本 待定
<?php // Usage 加载middleware lazy-decryption, 即可解出params Route::get("test", "TestController@index")->middleware(['lazy-decryption']) ?> <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Symfony\Component\EventDispatcher\Event; use Lazy\Tools\Code; class TestController extends Controller { /** * index * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function index(Request $request) { $username = $request->input('username'); $password = $request->input('password'); // echo $username; // echo "<br/>"; // echo $password; // exit; // 输出如下 // lazy // 123456 $data = [ 'username' => $username, 'password' => $password, ] return json(Code::success, 'success', $data); } } ?>