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

相关推荐
竣子好逑12 小时前
uniapp 微信小程序 editor 富文本编辑器
微信小程序·小程序·uni-app
计算机-秋大田12 小时前
基于微信小程序教学辅助系统设计与实现(LW+源码+讲解)
java·后端·微信小程序·小程序·课程设计
计算机-秋大田13 小时前
基于微信小程序的摄影竞赛系统设计与实现(LW+源码+讲解)
java·前端·后端·微信小程序·小程序·课程设计
轩轩99021816 小时前
微信小程序:中途退出原页面,再次进入无法回到退出时的位置
微信小程序·小程序·notepad++
V+zmm1013416 小时前
小程序疫苗预约网站系统ssm+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
礼貌而已19 小时前
vue3+ts+uniapp 微信小程序(第一篇)—— 微信小程序定位授权,位置信息权限授权
微信小程序·小程序·uni-app
说私域1 天前
数字经济时代下的创新探索与实践:以“开源AI智能名片2+1链动模式S2B2C商城小程序源码”为核心
人工智能·小程序·开源
ForteScarlet1 天前
Jetbrains 官方微信小程序插件已上线!
前端·ide·微信小程序·小程序
竣子好逑1 天前
uniapp 微信小程序 编写文章等 editor 编辑器编写富文本
微信小程序·小程序·uni-app