1. 使用 Buffer对象

Buffer.from(JSON.stringify(jwtHeader)).toString('base64')

2. 使用base64js.js

/*** base64js  Uint8Array 8位无符号整数,长度1个字节,* base64js.byteLength(base64Str)   base64字符串转为字节数组的长度* base64js.toByteArray(base64Str) base64字符串转为字节数组* base64js.fromByteArray(bytes)   字节数组转为base64字符串*/
(function (r) {if (typeof exports === "object" && typeof module !== "undefined") {module.exports = r()} else {if (typeof define === "function" && define.amd) {define([], r)} else {var e;if (typeof window !== "undefined") {e = window} else {if (typeof global !== "undefined") {e = global} else {if (typeof self !== "undefined") {e = self} else {e = this}}}e.base64js = r()}}
})(function () {var r, e, t;return function r(e, t, n) {function o(i, a) {if (!t[i]) {if (!e[i]) {var u = typeof require == "function" && require;if (!a && u) {return u(i, !0)}if (f) {return f(i, !0)}var d = new Error("Cannot find module '" + i + "'");throw d.code = "MODULE_NOT_FOUND", d}var c = t[i] = {exports: {}};e[i][0].call(c.exports, function (r) {var t = e[i][1][r];return o(t ? t : r)}, c, c.exports, r, e, t, n)}return t[i].exports}var f = typeof require == "function" && require;for (var i = 0; i < n.length; i++) {o(n[i])}return o}({"/": [function (r, e, t) {t.byteLength = c;t.toByteArray = v;t.fromByteArray = s;var n = [];var o = [];var f = typeof Uint8Array !== "undefined" ? Uint8Array : Array;var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for (var a = 0, u = i.length; a < u; ++a) {n[a] = i[a];o[i.charCodeAt(a)] = a}o["-".charCodeAt(0)] = 62;o["_".charCodeAt(0)] = 63;function d(r) {var e = r.length;if (e % 4 > 0) {throw new Error("Invalid string. Length must be a multiple of 4")}return r[e - 2] === "=" ? 2 : r[e - 1] === "=" ? 1 : 0}function c(r) {return r.length * 3 / 4 - d(r)}function v(r) {var e, t, n, i, a;var u = r.length;i = d(r);a = new f(u * 3 / 4 - i);t = i > 0 ? u - 4 : u;var c = 0;for (e = 0; e < t; e += 4) {n = o[r.charCodeAt(e)] << 18 | o[r.charCodeAt(e + 1)] << 12 | o[r.charCodeAt(e + 2)] << 6 | o[r.charCodeAt(e + 3)];a[c++] = n >> 16 & 255;a[c++] = n >> 8 & 255;a[c++] = n & 255}if (i === 2) {n = o[r.charCodeAt(e)] << 2 | o[r.charCodeAt(e + 1)] >> 4;a[c++] = n & 255} else {if (i === 1) {n = o[r.charCodeAt(e)] << 10 | o[r.charCodeAt(e + 1)] << 4 | o[r.charCodeAt(e + 2)] >> 2;a[c++] = n >> 8 & 255;a[c++] = n & 255}}return a}function l(r) {return n[r >> 18 & 63] + n[r >> 12 & 63] + n[r >> 6 & 63] + n[r & 63]}function h(r, e, t) {var n;var o = [];for (var f = e; f < t; f += 3) {n = (r[f] << 16) + (r[f + 1] << 8) + r[f + 2];o.push(l(n))}return o.join("")}function s(r) {var e;var t = r.length;var o = t % 3;var f = "";var i = [];var a = 16383;for (var u = 0, d = t - o; u < d; u += a) {i.push(h(r, u, u + a > d ? d : u + a))}if (o === 1) {e = r[t - 1];f += n[e >> 2];f += n[e << 4 & 63];f += "=="} else {if (o === 2) {e = (r[t - 2] << 8) + r[t - 1];f += n[e >> 10];f += n[e >> 4 & 63];f += n[e << 2 & 63];f += "="}}i.push(f);return i.join("")}}, {}]}, {}, [])("/")
});

字符串编码

/*** utf8字符串转为字节数组 同java中 String.getBytes(utf8Str)* @param utf8Str* @returns {[]}*/
var utf8StrToBytes = function (utf8Str) {var ens = encodeURIComponent(utf8Str);var es = unescape(ens);var esLen = es.length;// Convertvar words = [];for (var i = 0; i < esLen; i++) {words[i] = es.charCodeAt(i);}return words;
}
/*** 字节数组转为utf8字符串  同java中 new String(bytes)* @param bytesArray* @returns {string}*/
var bytesToUtf8Str = function (bytesArray) {var utf8Byte = bytesArray;var latin1Chars = [];for (var i = 0; i < utf8Byte.length; i++) {latin1Chars.push(String.fromCharCode(utf8Byte[i]));}return decodeURIComponent(escape(latin1Chars.join('')));
}

测试

base64.fromByteArray(utf8StrToBytes('打快点快点')) // 5omT5b+r54K55b+r54K5
//同Java中 org.apache.commons.codec
Base64.encodeBase64String("打快点快点".getBytes()) // 5omT5b+r54K55b+r54K5

3. js中类似java中byte强转int类型

/*** int 转 byte, js中int转byte(-128—127)* @param i 整数*/
var intToByte = function(i) {var b = i & 0xFF;var c = 0;if (b >= 128) {c = b % 128;c = -1 * (128 - c);} else {c = b;}return c
}
```

js中base64编码相关推荐

  1. Javascript中Base64编码解码的使用实例

    Javascript为我们提供了一个简单的方法来实现字符串的Base64编码和解码,分别是window.btoa()函数和window.atob()函数. 1 var encodedStr = win ...

  2. Vue中base64编码和解码

    推荐一个不错的学习资料库 Vue中base64编码和解码 1.在项目更目录下执行命令,安装 npm install --save js-base64 2.在使用的项目引入 let Base64 = r ...

  3. php中base64和js中base64可互相加解密

    php中base64和js中base64可互相加解密 前提:加解密的字符必须转换成UTF-8编码格式. php代码: <?php $str='中国航母辽宁号-歼15战机GOOD=ok'; ech ...

  4. js实现Base64编码解码

    js实现标准的Base64编码解码 Base64 是使用64个可打印ASCII字符(A-Z.a-z.0-9.+./)将任意字节序列数据编码成ASCII字符串,另有"="符号用作后缀 ...

  5. 猿人学12题超详细解题思路-入门级js(base64编码)

    前言:服务器为了防止获取他们的数据,可谓是使用各种方法,js逆向可以很方便的解析出来一些加密数据,毕竟道高一尺魔高一丈,今天告诉大家袁人学第12题的解题思路,超详细解题思路. 需求:          ...

  6. js实现base64编码和解码

    文章目录 需求 什么是Base64 编码规则 如何解码 js实现基于base64的编码解码 window自带函数进行Base64编码解码 Base64编码的实际运用 图片base64编码 需求 应公司 ...

  7. 用 JS 进行 Base64 编码、解码

    从IE10+浏览器开始,所有浏览器就原生提供了 Base64 编码.解码方法,不仅可以用于浏览器环境,Service Worker 环境也可以使用. 方法名就是 atob 和 btoa ,具体语法如下 ...

  8. Vue项目:路由跳转时中文传参被URL编码,怎么解决?用js封装Base64编码解码加密解密

    1.在utils中封装js方法,代码如下: var Base64 = { ​// private property_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZab ...

  9. JS 中 URL 编码的问题.

    URL 编码 为什么要对 URL 编码 1. 避免解析错误 我们的 queryString 的形式是使用 ?开始, key=value 传递参数, key-value pairs 之间使用 & ...

  10. Java中BASE64 编码

    2019独角兽企业重金招聘Python工程师标准>>> BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BAS ...

最新文章

  1. VALSE 2020来了!60位计算机视觉、模式识别领域的优秀青年学者齐聚一堂
  2. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】
  3. mysql基础(DQL语言、DML语言、DDL语言)详解
  4. SpringBoot_数据访问-简介
  5. 设计模式C++实现(7)——观察者模式
  6. 报表没完没了怎么办? | 润乾集算器提效报表开发
  7. junit5和junit4_JUnit 5 –基础
  8. Linux 命令 ——less命令
  9. android Handler Message传递参数,handler子线程和主线程通讯
  10. 要啥网·商信:一款让所有商业活动一步跨入移动互联时代的APP
  11. 2021牛客寒假算法基础集训营1,签到题ABFIJ
  12. 拓端tecdat|python深度学习实现自编码器Autoencoder神经网络异常检测心电图ECG时间序列
  13. ARP欺骗+DNS欺骗
  14. 光滑曲线_光滑流形初步(2)——切向量与微分
  15. appcan ajax mysql_appCan折叠列表
  16. HDU 4461 The Power of Xiangqi
  17. 虚拟主机能做游戏服务器么,虚拟主机做游戏服务器吗
  18. 360年会三娘逆袭 女程序员戴假发化妆成-搜狐滚动
  19. Maven学习笔记,动力节点maven教程随堂笔记(史上最全)
  20. C语言最-佳存款方案程序(代码原创)

热门文章

  1. 铸造行业ERP管理软件的开发
  2. MySQL中根据身份证号码计算年龄
  3. 原生Java萝卜影视4.0.5源码/完美修复完整版萝卜影视源码
  4. 用例图分析---学生成绩管理系统
  5. 超全面超详细的Linux学习入门系列教程
  6. AltiumDesigner绘制PCB(一)
  7. 软件测试——PreDate函数
  8. ubuntu14安装火狐浏览器(firefox)中国版
  9. 基于haneWIN实现windows与linux之间文件共享
  10. spring-boot集成kafka(包含zookeeper和kafka的下载介绍)