微信小程序-base64加解密

devtools/2025/1/20 3:07:16/

思路:先创建一个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


http://www.ppmy.cn/devtools/151984.html

相关文章

Java复习第二天

一、代码题 1.合并两个有序数组 (1)题目 给你两个按 非递减顺序 排列的整数数组 nums1和 nums2&#xff0c;另有两个整数 m和n&#xff0c;分别表示nums1和nums2 中的元素数目。 请你合并nums2到 nums1中&#xff0c;使合并后的数组同样按非递减顺序排列。 注意:最终&#…

矩阵碰一碰发视频源码技术开发全解析,支持OEM

在当今数字化内容传播迅速发展的时代&#xff0c;矩阵碰一碰发视频功能以其便捷、高效的特点&#xff0c;为用户分享视频提供了全新的体验。本文将深入探讨矩阵碰一碰发视频源码的技术开发过程&#xff0c;从原理到实现&#xff0c;为开发者提供全面的技术指引。 一、技术原理 …

两个关于TCP/IP的问题

tcp的客户端是会随机选择一个端口连接到服务端的&#xff0c;那么如果在非常短的时间内&#xff0c;在客户端生产上百万个的tcp连接&#xff0c;会导致什么问题&#xff1f;出现这样的问题&#xff0c;在linux操作系统里面要怎么解决&#xff1f;在其他的操作系统里面又要怎么解…

简单组合逻辑

多路选择器 在多路数据传输过程中&#xff0c;能够将任意一路选出来的电路叫做数据选择器&#xff0c;也称多路选择器。对于一个具有2^n个输入和一个输出的多路选择器&#xff0c;有n个选择变量&#xff0c;多路选择器也是FPGA内部的一个基本资源&#xff0c;主要用于内部信号的…

中软高科鸿蒙Next身份证读卡SDK集成说明

导入har 项目中导入提供的开发包 readcardlibrary.har 鸿蒙next的NFC使用配置&#xff0c;请参考官方文档。 需要在EntryAbility 中添加NFC tag相关的监听。 在项目的 module.json5 文件中需要配置NFC的权限 "requestPermissions": [{"name": "o…

【进程与线程】前端进程与后端进程

在操作系统和计算机系统中&#xff0c;前端进程 和 后端进程 是两类不同的进程类型&#xff0c;主要根据进程的交互方式和运行特点来分类。 前端进程 前端进程 是指直接与用户交互的进程&#xff0c;通常负责处理用户输入、显示输出结果。它们通常运行在前台&#xff0c;用户…

【数据库】MySQL数据库SQL语句汇总

目录 1.SQL 通用语法 2.SQL 分类 2.1.DDL 2.2.DML 2.3.DQL 2.4.DCL 3.DDL 3.1.数据库操作 3.1.1.查询 3.1.2.创建 3.1.3.删除 3.1.4.使用 3.2.表操作 3.2.1.查询 3.2.2.创建 3.2.3.数据类型 3.2.3.1.数值类型 3.2.3.2.字符串类型 3.2.3.3.日期时间类型 3.2…

基于 Spring Boot、Vue 实现的调问开源问卷系统

是一款简单、高效、成熟、稳定、专业的开源问卷系统&#xff0c;自2012年启动至今经过9年的积累&#xff0c;已经形成一套完善的基于 JAVA WEB 的开源问卷表单解决方案。 &#x1f389;&#x1f389;&#x1f389; 企业版 全新的 企业版 已经发布&#xff0c;前后端分别采用 …