微信小程序生成二维码加密(CryptoJS4.0加密PHP8.0解密)AES方式加密

1、小程序创建 crypto-js.jscrypto.js两个文件(点击文件即可)

2、小程序js页面引入

复制代码
var crypto = require('../../utils/crypto.js');//注意路径是否正确

3、使用

复制代码
 let data = {
        id: that.data.id,
        name: 'dx'
      }
      console.log(JSON.stringify(data))
      console.log("加密=============")
      console.log(crypto.encrypted(JSON.stringify(data)))//加密
      console.log("=============")

PHP解密

复制代码
<?php
header("Content-type:text/html;charset=utf-8");
 
//加密向量16位
$iv = "iviviviviviviviv";
//js加密秘钥16位(iv和key可以是相同的,也可以不同。但是必须要和js中的一致才可以)
$decrypt_key = "iviviviviviviviv";
//********************************解密**********************************
//js加密密文字符串
$decrypt_data = "加密后的字符串";
$decrypted = decrypt($decrypt_data, $decrypt_key, $iv);
//解密结果
var_dump($decrypted);
//exit;
//********************************结束**********************************


//********************************加密**********************************
//PHP加密秘钥16位
$encrypt_key = date("YmdHis");
//PHP加密数据
$arr = array('username' => '张三', 'password' => '123456');
//转换成json字符串
$encrypt_data = json_encode($arr);
$encrypted = encrypt($encrypt_data, $encrypt_key, $iv);
//加密结果
var_dump($encrypted);
exit;
//********************************结束**********************************
 
//******************************集成函数********************************
/**
 * 加密字符串
 * @param string $data 字符串
 * @param string $key 加密key
 * @param string $iv 加密向量
 * @return string
 */
function encrypt($data, $key, $iv)
{
	//支持php5
    //$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
    //支持php8
    //$decrypted = openssl_encrypt($data, 'AES-128-CBC', $key,2, $iv);
    $encrypted = openssl_encrypt($data, "AES-128-CBC", $key, true, $iv);
    return base64_encode($encrypted);
}
 
/**
 * 解密字符串
 * @param string $data 字符串
 * @param string $key 加密key
 * @param string $iv 加密向量
 * @return object
 */
function decrypt($data, $key, $iv)
{
	//支持php5
    //$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($data), MCRYPT_MODE_CBC, $iv);
    //支持php8
    //$decrypted = openssl_decrypt($data, 'AES-128-CBC', $key,2, $iv);
    $decrypted = openssl_decrypt(base64_decode($data), 'AES-128-CBC', $key, true, $iv);
    
    $json_str = rtrim($decrypted, "\0");
    return json_decode($json_str);
}
相关推荐
阿正的梦工坊4 分钟前
JavaScript 闭包 × C++ 类比:彻底搞懂闭包
开发语言·javascript·c++
听你说3219 分钟前
鹏辉能源全极耳小圆柱:高安全+高功率,驱动低空经济/BBU/机器人市场增长
安全·机器人·能源
smilejingwei21 分钟前
用 AI 编程生成 ECharts 图表并嵌入报表的实践
前端·人工智能·echarts·bi·报表工具·商业智能
KevinCyao41 分钟前
php彩信接口代码示例:PHP使用cURL调用彩信网关发送图文消息
android·开发语言·php
Linux运维技术栈43 分钟前
Cloudflare Argo Smart Routing全球加速:优化跨境回源链路,提升跨区域访问体验
大数据·前端·数据库
ll_af1 小时前
内网渗透完整链路:从外网打点到域控权限
网络·安全·web安全
xixixi777771 小时前
跨境AI服务:多语种大模型+卫星通信+量子加密+数据脱敏+安全审计,合规·高效·安全三重保障
人工智能·安全·大模型·通信·卫星通信·审计·量子安全
其实防守也摸鱼1 小时前
集成开发环境phpStudy安装与配置指南(包含DVWA)
网络·安全·php·web·ctf·工具配置
恋猫de小郭1 小时前
Android CLI ,谷歌为 Android 开发者专研的 AI Agent,提速三倍
android·前端·flutter
Hello--_--World1 小时前
Js 隐式类型转换、JavaScript `==` vs `===` 深度对比表
开发语言·javascript·ecmascript