你自己调试一下deCode要解密的数据串,这个串的长度应该是4的倍数,否则肯定是会报这个错误的
求采纳
IE10。前端实现base64编码和解码,ie前端使用从IE10+浏览器可解码base64是bytes类型。所有浏览器就原生提供了Base64编码,解码方法,不仅可以用于浏览器环境,ServiceWorker环境也可以使用。
getUrl(html)函数: 从参数html中查找 "thumb":\\xxxxx形式的字符串,返回xxxx这串字符串,这xxx中包含了jpg的url。
findReplaceStr(url)函数: 查找参数url的.jpg前字符串,即图片名称,返回这个名称的字符串。
getBigImageUrl(url,replaceStr)函数: 处理参数url,把图片地址用参数replaceStr替换为正确的解析地址newurl,并返回这个newurl。
这几个函数通篇没有用到什么base64解码,只使用了正则表达式re模块,你是不是搞错了?
Base64概述:
Base64是JDK8提出的一个新特性,可以用来进行按照一定规则编码和解码
使用:
编码:
1.获取编码器
2.对数据进行编码
解码:
1.获取解码器
2.对数据进行解码
Base64工具类提供了一套静态方法获取三种Base64编码解码
基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/
URL:输出被映射到一组字符A-Za-z0-9+_,输出是URL和文件
MIME:输出映射到MIME友好格式,因为输出每行数据不超过67个字符
API:
public static Encoder getEncoder():基本型 base64 编码器
public static Decoder getDecoder():基本型 base64 编码器
public static Encoder getUrlEncoder():Url型 base64 编码器
public static Decoder getUrlDecoder():Url型 base64 编码器
public static Encoder getMimeEncoder():Mime型 base64 编码器
public static Decoder getMimeDecoder():Mime型 base64 编码器
从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 方法,如下: