javascript的Base64编码&解码
发布时间:2020-09-08
浏览量: 1759
文章分类: 前端相关
因为几个项目都是前后端分离,所以用到了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");//解码