更新记录
1.0.0(2024-11-26) 下载此版本
无
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
× | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | × | √ | √ | √ |
当是自己存储的,我觉得有用
由于依赖crypto-js,首先终端安装crypto-js
npm install crypto-js
在你需要加密的uniapp页面调用
import { jiami, jiemi } from '@/js_sdk/jm-jm/jm.js';
然后需要使用的地方
this.xuyaojiamide=jiami(val);//加密方式
this.xuyaojiemide=jiemi(val);//解密方式
iv是随机的,修改jm.js里面的keyCode为自己的key
const keyCode = '1234567890ABCDEF1234567890ABCDEF';
以下php代码,同样改成和你jm.js一样的key
function jiami($word) {
$keyCode = '1234567890ABCDEF1234567890ABCDEF';
$key = hex2bin($keyCode);
// 生成一个随机的16字节IV
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-128-CBC'));
$encrypted = openssl_encrypt($word, 'AES-128-CBC', $key, OPENSSL_RAW_DATA,$iv);
// 将IV和加密后的数据一起使用Base64编码,以便传输
return base64_encode($iv .$encrypted);
}
function jiemi($encryptedBase64) {
$keyCode = '1234567890ABCDEF1234567890ABCDEF';
$key = hex2bin($keyCode);
// 使用Base64解码接收到的加密字符串
$encrypted = base64_decode($encryptedBase64);
// 从加密数据中提取IV
$iv = substr($encrypted, 0, openssl_cipher_iv_length('AES-128-CBC'));
$encrypted = substr($encrypted, openssl_cipher_iv_length('AES-128-CBC'));
$decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA,$iv);
return $decrypted;
}
thinkphp可将此php写到common,然后注册中间件达到所有输出的json里面都是加密的内容,
中间件代码如下
//以下内容自行修改,可能我错了
//排除不需要加密输出的模型
protected $whiteList = [
'/app/user/yanzhengma',
];
public function handle($request, \Closure $next)
{
// 调用下一个中间件或控制器
$response = $next($request);
$url = strtolower($request->baseUrl()); //获取url地址, 不带域名,然后小写,
if(in_array($url,$this->whiteList)) return $next($request);
// 获取原始内容
$content = $response->getContent();
// 进行简单的加密处理(示例使用 base64_encode,可以替换为实际的加密算法)
$jiamihou = jiami(json_encode($content));
$data['d']=$jiamihou;
$newResponse = Response::create($data, 'json');
return $newResponse; // 返回修改后的响应
}
直接在你需要的加密的应用下面注册中间件即可,代码如下
<?php
// 这是系统自动生成的middleware定义文件
return [
'think\middleware\SessionInit',
//获取所有return进行加密
\app\middleware\EncryptResponse::class,
//获取中间件路径,自己根据喜好定义
// \app\middleware\jiamijiemi::class,
];