微信小程序-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');

      //从缓存中取出token
      let tokened = wx.getStorageSync('token');
      console.log("tokened:",tokened);
      //对token进行处理,解析token,因为设置原因,我的token解码位置特殊
      // 进行分割+格式化
      let userinfo = tokened.split('-')[1];
      console.log("userinfo-token》》》》》",userinfo)
      // 解码base64
      let 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

相关推荐
2501_9151063214 小时前
App HTTPS 抓包实战解析,从代理调试到真实网络流量观察的完整抓包思路
网络协议·http·ios·小程序·https·uni-app·iphone
游戏开发爱好者815 小时前
苹果App Store应用程序上架方式全面指南
android·小程序·https·uni-app·iphone·webview
2501_9160088915 小时前
深入理解 iPhone 文件管理,从沙盒结构到开发调试的多工具协同实践
android·ios·小程序·https·uni-app·iphone·webview
说私域16 小时前
人口红利消退与疫情冲击下电商行业的转型路径探索——以开源链动2+1模式S2B2C商城小程序为例
小程序·开源
一室易安16 小时前
解决使用 UniApp 搭配 Vue3 小程序开始 使用uview-plus 的返回顶部up-back-top中onPageScroll 不触发的问题
小程序·uni-app
初願致夕霞16 小时前
C++文件压缩及解压缩小程序的实现
c++·小程序·apache
fengGer的bugs17 小时前
从零到一全栈开发 | 跑腿服务系统:小程序+Vue3+Node.js
小程序·node.js·全栈开发·跑腿服务系统
一室易安17 小时前
uniapp+vue3 微信小程序中 页面切换tab 页面滚动到指定锚点位置,滚动页面时候到达指定锚点位置吸顶tab 会自动进行切换
微信小程序·uni-app·notepad++
2501_9160074717 小时前
没有 Mac,如何在 Windows 上架 iOS 应用?一套可落地的工程方案
android·macos·ios·小程序·uni-app·iphone·webview
不想吃菠萝17 小时前
pc端微信小程序post传递data是字符串,自动加了双引号问题修改方案
微信小程序·小程序