用JS进行Base64编码、解码

JavaScript017

用JS进行Base64编码、解码,第1张

  从IE10+浏览器开始,所有浏览器就原生提供了Base64编码、解码方法,不仅可以用于浏览器环境,Service Worker环境也可以使用。

方法名就是 atob 和 btoa ,具体语法如下:

IE8/IE9的polyfill

  当下,仍有不少PC项目还需要兼容IE9,所以,我们可以专门针对这些浏览器再引入一段ployfill脚本或者一个JS文件即可。

[if IE] 表示所有IE浏览器,由于IE10+浏览器已经放弃了著名的IE条件注释的支持,Chrome等浏览器本身就不支持这个IE私有语法,因此,很天然的,上面一段script引入只在IE9-浏览器下有效。而我们本来就希望只IE8,IE9浏览器引入ployfill,于是正好完美衔接上。

也就是原生支持atob和btoa方法的浏览器认为就是一段无需关心的HTML注释,不支持atob和btoa的IE9及其以下浏览器则会加载我们的base64-polyfill.js,使浏览器也支持 window.btoa 和 window.atob 这个语法。

开源的 base64.js ,使用很简单,浏览器引入该JS文件,然后Base64编码这样:

解码就调用 decode 方法,如下:

encodeURI 函数对 URI 进行完整的编码

encodeURIComponent 函数假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

所以encodeURIComponent比encodeURI编码的范围更大。

1、如果只是编码字符串,使用escape

2、如果需要编码整个URL,然后需要使用这个URL,使用encodeURl

3、如果需要编码URL中的参数,使用encodeURlComponent

1、string --->base-64转码

2、base64转码的对象只能是字符串,不能对unicode转码

对于汉字,这就要使用window.encodeURIComponent和window.decodeURIComponent

一、base64加密

使用JS函数的window.btoa()和 window.atob(),分别是编码和解码

二、编码和解码字符串

使用JS函数的escape()和unescape(),分别是编码和解码

三、AES加密解密

四、RSA加密解密