微信小程序-base64加解密
思路:先创建一个base64.js的文件,这个文件可以作为专门加解密的文件模块,需要时就引用;创建好后,引用base64.js里的加解密函数。
注意:引用模块一定要引用正确的路径,否则会报错。
base64.js:
// 实现Base64加密
function base64Encode(str) {let base64 = new Base64();return base64.encode(str);
}// 实现Base64解密
function base64Decode(str) {let base64 = new Base64();return base64.decode(str);
}// 定义Base64对象
function Base64() {// Base64字符集const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";// 编码函数this.encode = function (str) {let result = '';for (let i = 0; i < str.length; i += 3) {let a = str.charCodeAt(i);let b = i + 1 < str.length ? str.charCodeAt(i + 1) : 0;let c = i + 2 < str.length ? str.charCodeAt(i + 2) : 0;let a1 = a >> 2, a2 = ((a & 3) << 4) | (b >> 4), a3 = ((b & 15) << 2) | (c >> 6), a4 = c & 63;result += base64Chars[a1] + base64Chars[a2] + (i + 1 < str.length ? base64Chars[a3] : '=') + (i + 2 < str.length ? base64Chars[a4] : '=');}return result;}// 解码函数this.decode = function (str) {let result = '';let i = 0;while (i < str.length) {let a = base64Chars.indexOf(str.charAt(i++));let b = base64Chars.indexOf(str.charAt(i++));let c = base64Chars.indexOf(str.charAt(i++));let d = base64Chars.indexOf(str.charAt(i++));let a1 = (a << 2) | (b >> 4);let a2 = ((b & 15) << 4) | (c >> 2);let a3 = ((c & 3) << 6) | d;result += String.fromCharCode(a1);if (c != 64) {result += String.fromCharCode(a2);}if (d != 64) {result += String.fromCharCode(a3);}}return result;}
}// 向外暴露方法
module.exports = {base64Encode: base64Encode,base64Decode: base64Decode
}
在待加解密文件中,引用base64.js模块:
const base64 = require('./base64');
//从缓存中取出tokenlet tokened = wx.getStorageSync('token');console.log("tokened:",tokened);//对token进行处理,解析token,因为设置原因,我的token解码位置特殊// 进行分割+格式化let userinfo = tokened.split('-')[1];console.log("userinfo-token》》》》》",userinfo)// 解码base64let rawStr= base64.base64Decode(userinfo);//var data= JSON.parse(rawStr);console.log('base64解码后的字符串: ',rawStr);//截取解码后的字符串let rawObj = rawStr.slice(0,-2);console.log('字符串转为数组: ',JSON.parse(rawObj));let QEUID = JSON.parse(rawObj).UID;console.log("用户ID:"+QEUID);
最终结果

参考:https://juejin.cn/post/7229512717135527991
PHP中 base64_decode与base64_encode加密解密函数
base64_encode是加密
base64_encode 语法:string base64_encode(string data);$string='www.zhix.net智昕网络'; //定义字符串echo base64_encode($string); // 输出编码后的内容为 d3d3LnpoaXgubmV05pm65piV572R57uc
base64_decode是解密
base64_decode 语法:string base64_decode(string data);$string='d3d3LnpoaXgubmV05pm65piV572R57uc'; //定义字符串echo base64_decode($string); //输出解码后的内容 www.zhix.net智昕网络
参考:https://blog.csdn.net/fujian9544/article/details/111590073
相关文章:
微信小程序-base64加解密
思路:先创建一个base64.js的文件,这个文件可以作为专门加解密的文件模块,需要时就引用;创建好后,引用base64.js里的加解密函数。 注意:引用模块一定要引用正确的路径,否则会报错。 base64.js:…...
Linux shell 批量验证端口连通性
脚本 #!/bin/bash # #database check #set -o nounset LOCALIPifconfig | grep inet | head -1 | awk {print $2} | sed s/addr\:// IPLIST192.168.1.99 192.168.1.98 192.168.1.97 PORTLIST81 82 83 84 85 86 check_nc(){ for CHECK_IP in $IPLIST dofor CHECK_PORT in $PORT…...
2025-1-21 Newstar CTF web week1 wp
文章目录 week1headach3会赢吗智械危机 week1 headach3 根据提示,在页面的请求头里找到flag flag{You_Ar3_R3Ally_A_9ooD_d0ctor} 会赢吗 打开控制台,拿到第一部分flag 将地址栏改为提示,去到下一关 控制台调用函数,得到flag …...
【系统架构】如何设计一个秒杀系统?
目录 1. 什么是秒杀? 2. 秒杀系统的特点 3. 如何设计秒杀系统? 3.1 前端秒杀设计 3.2 后端秒杀设计 4. 如何保证不超卖? 4.1 库存扣减方式 4.2 服务端库存处理 5. 总结 * 知识扩展:什么是CDN? 1. 什么是秒杀…...
C++模拟实现queue
C模拟实现queue 1.queue的基本概念2.queue的基本框架3.size()成员函数4.empty()成员函数5.push()成员函数6.pop()成员函数7.front()成员函数8.back()成员函数9.完整代码 🌟🌟hello,各位读者大大们你们好呀🌟🌟 &#x…...
【2025小年源码免费送】
💖学习知识需费心, 📕整理归纳更费神。 🎉源码免费人人喜, 🔥码农福利等你领! 💖山高路远坑又深, 📕大军纵横任驰奔, 🎉谁敢横刀立马行…...
PyQt5 超详细入门级教程上篇
PyQt5 超详细入门级教程 上篇:1-3部分:PyQt5基础与常用控件 第1部分:初识 PyQt5 和安装 1.1 什么是 PyQt5? PyQt5 是 Python 的图形用户界面 (GUI) 框架,它基于强大的 Qt 库。Qt 是一个跨平台的 C 框架,用…...
qiankun+vite+vue3
基座与子应用代码示例 本示例中,基座为Vue3,子应用也是Vue3,由于qiankun不支持Vite构建的项目,这里还要引入 vite-plugin-qiankun 插件 基座(主应用) 加载qiankun依赖 npm i qiankun -S qiankun配置(src/qiankun) src/qiankun/config.ts export default {subApp…...
【数据结构】顺序队列与链式队列
顺序队列与链式队列 1.队列的基本概念1.顺序存储的队列:循环队列3.链式存储的队列:链式队列 1.队列的基本概念 队列是一种逻辑结构,是一种特殊的线性表 只能在固定的两端操作线性表 只要满足上述条件,那么这种特殊的线性表就会…...
Cursor的详细使用指南
以下是一份关于 Cursor 的详细使用指南: 一、安装与设置 下载与安装: 首先,访问 Cursor 的官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载相应的安装程序。运行安装程序,按照屏幕上的提…...
2025美赛数学建模B题思路+模型+代码+论文
2025美赛数学建模A题B题C题D题E题思路模型代码(1.24第一时间更新,更新见文末名片) 论文数学建模感想 纪念逝去的大学数学建模:两次校赛,两次国赛,两次美赛,一次电工杯。从大一下学期组队到现在…...
2024年度总结-CSDN
2024年CSDN年度总结 Author:OnceDay Date:2025年1月21日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 文章目录 2024年CSDN年度总结1. 整体回顾2…...
2024国游销量前20游戏分析:某开放世界武侠(排名11)
1、销量约20万套,销售额1400万人民币。 与一代的发售间隔为三年。 虽然对于网游大厂来说这个数字不够看,但对一个小团队来说足够维持了,三年的运营成本不是小数目。 2、开发商属于国内最早做3DMMO的厂商之一,创始人曾在国外大学…...
如何使用python技术爬取下载百度文库文档?
使用 Python 爬取百度文库文档需要通过分析网页结构和接口请求来实现。以下是一个基于搜索结果的实现方法,适用于爬取百度文库中的文档内容: 第一部分:获取百度文库文档 实现步骤 获取文档 ID 和基本信息 通过文档的 URL 获取文档 ID&…...
navicat无法连接虚拟机的docker中的mysql
我的数据库安装在了虚拟机的docker中,启动MySQL后,在主机上使用navicat一直连接不上。 首先确认密码是否有问题: docker exec -it mysql8 bash #进入mysql容器 mysql -u root -p #登录MySQL,我这边密码是123456 密码没问题的话…...
如何使用CRM数据分析优化销售和客户关系?
嘿,大家好!你有没有想过为什么有些公司在市场上如鱼得水,而另一些却在苦苦挣扎?答案可能就藏在他们的销售策略和客户关系管理(CRM)系统里。今天我们要聊的就是如何通过有效的 CRM 数据分析来提升你的销售额…...
【Unity3D】3D物体摆放、场景优化案例Demo
目录 PlaceManager.cs(放置管理类) Ground.cs(地板类) 和 GroundData.cs(地板数据类) 额外知识点说明 1、MeshFilter和MeshRenderer的Bounds区别 2、Gizmos 绘制一个平行于斜面的立方体 通过网盘分享的文件:PlaceGameDemo2.unitypackage 链接: https://pan.baid…...
使用HTML5 Canvas 实现呼吸粒子球动画效果的原理
在网页开发领域,动画效果能够极大地提升用户体验,让页面变得更加生动有趣。今天,我们深入剖析一个基于 HTML5 Canvas 的 3D 粒子动画 —— 呼吸粒子球。通过详细解读其代码实现,我们将全面了解如何运用 HTML5 的强大功能构建出如此…...
Java 中实体类与操作类分离
目录 一、为啥要把实体类和操作类分开 二、实体类长啥样,怎么用 三、操作类的使命与实现 四、实战演练:实体类与操作类协同工作 五、拓展思考:这种分离带来的好处与进一步优化 六、总结与展望 家人们,今天我想跟你们唠唠我在…...
【STM32HAL-----GPIO】
1. 什么是GPIO?(了解) 2. STM32 GPIO简介 2.1. GPIO特点 2.2. GPIO电气特性 2.3. GPIO引脚分布图 IO引脚分布特点:按组存在、组数视芯片而定、每组最多16个IO引脚。 3. IO端口基本结构介绍 4. GPIO八种工作模式 4.1. 输入浮空 特…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
