正在进入ing...

javascript的Base64编码&解码

发布时间:2020-09-08 浏览量: 1760 文章分类: 前端相关

因为几个项目都是前后端分离,所以用到了jwt,在payload中包含了用户的名称、id等信息,而这些信息前端在拿到手以后需要解码进行展示或者处理。

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

var payLoad = window.atob(jwt.split('.')[1]) //base64解码
window.atob("eyJ1c2VyX25hbWUiOiJcdTVmMjBcdTUwNjUwMDEiLCJleHAiOjE1OTIyNzU1NDMsInVzZXJfaWQiOjEsImJpbmRfcGhvbmUiOnRydWUsImhlYWRpbWd1cmwiOiJodHRwOi8vMTkyLjE2OC41MC4xNjA6ODAwMC9tZWRpYS9jaGF0X2ltZy8yMDIwXzVfMTkvMTU4OTg3MzIwNzIyODUyMDkxOTIxNjg1MDE2MFdlY2hhdElNRzc3MC5wbmcifQ=") // 解码

IE8/IE9的polyfill

但是这个存在兼容问题,如果是老版本的IE,可以考虑引入js的一个第三方模块ployfill

<!--[if IE]>
<script src="...你的路径/base64-polyfill.js"></script>
<![endif]-->

使用第三方的模块(推荐&省事)

还有一个开源的base64.js模块,使用也是很简单,浏览器引入以后,然后直接按照下面的方法使用即可

Base64.encode("this is pein blog!");//编码
Base64.decode('"eyJ1c2VyX25hbWUiOiJcdTVmMjBcdTUwNjUwMDEiLCJleHAiOjE1OTIyNzU1NDMsInVzZXJfaWQiOjEsImJpbmRfcGhvbmUiOnRydWUsImhlYWRpbWd1cmwiOiJodHRwOi8vMTkyLjE2OC41MC4xNjA6ODAwMC9tZWRpYS9jaGF0X2ltZy8yMDIwXzVfMTkvMTU4OTg3MzIwNzIyODUyMDkxOTIxNjg1MDE2MFdlY2hhdElNRzc3MC5wbmcifQ");//解码