微信小程序-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. 输入浮空 特…...
Flutter 布局系统:构建响应式界面
Flutter 布局系统:构建响应式界面掌握 Flutter 布局系统的核心概念和最佳实践。一、布局系统概述 作为一名追求像素级还原的 UI 匠人,我深知布局系统在 Flutter 开发中的重要性。Flutter 提供了一套强大的布局系统,让我们能够创建各种复杂的界…...
玩客云OneCloud轻量级影视站:LibreTV+Docker极简部署指南
1. 为什么选择玩客云搭建影视站? 最近两年,我发现身边越来越多的朋友开始折腾家庭影音系统。有人花大价钱买专业NAS,也有人用旧电脑改造,但最让我眼前一亮的方案,还是用玩客云OneCloud这种小设备搭建影视站。你可能要问…...
FFmpeg drawtext滤镜进阶:除了时间水印,你还能用它玩出什么花样?(动态文本+多位置叠加)
FFmpeg drawtext滤镜进阶:动态文本与多位置水印的创意实践 在视频处理领域,水印不仅是版权保护的标配工具,更是内容创作者展示品牌个性的画布。传统的时间戳水印早已无法满足专业用户的需求——想象一下,在直播流中实时显示股票行…...
从零构建ZigBee开发环境:IAR for 8051 10.30.1实战指南
1. 为什么选择IAR for 8051开发ZigBee? 刚接触ZigBee开发的朋友们可能都有这样的困惑:市面上有那么多开发工具,为什么要用IAR for 8051?这个问题我十年前刚开始做智能家居时就遇到过。当时为了给一个智能灯泡项目选型,…...
Seed-Coder-8B-Base案例分享:这些实用代码片段都是AI写的
Seed-Coder-8B-Base案例分享:这些实用代码片段都是AI写的 1. 引言:AI编程助手的崛起 在软件开发领域,一个革命性的变化正在发生:AI代码生成工具正从简单的补全功能,进化成为真正的编程伙伴。Seed-Coder-8B-Base作为一…...
Emotion2Vec+ Large语音情感识别:开箱即用,9种情绪精准分析
Emotion2Vec Large语音情感识别:开箱即用,9种情绪精准分析 1. 语音情感识别技术概述 语音情感识别技术正在改变我们与机器交互的方式。这项技术通过分析语音中的声学特征,能够准确识别说话者的情绪状态。Emotion2Vec Large作为当前领先的语…...
【RAG】【vector_stores008】AwaDB向量存储示例
案例目标本案例演示如何使用AwaDB作为向量存储后端构建RAG系统。AwaDB是一个高性能的向量数据库,专门用于存储和检索高维向量数据,适用于语义搜索、推荐系统和AI应用等场景。通过本示例,用户可以学习如何集成AwaDB与LlamaIndex,实…...
Win11Debloat:Windows系统终极精简优化完整指南
Win11Debloat:Windows系统终极精简优化完整指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customiz…...
Git学习笔记作用及概述
作用及概述一、作用: 1.代码回溯 2.版本切换 3.多人协作 4.远程备份...
GraphRAG硬核实战:打造企业“数字老师傅”
技术隐喻警示:如果你还在用传统的向量数据库试图解决企业级知识传承问题,这就像试图用“关键词搜索”去训练一个博士生——不仅力不从心,更是对算力的极度浪费。 在企业数字化转型的深水区,我们面临着一个极其残酷的**“默会知识”…...
