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 编码器
Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制,在下述表格中找到对应的编码串接起来就是Base16编码。
Base16编码的方式:
1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。
2.根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。
在线工具链接:
getUrl(html)函数: 从参数html中查找 "thumb":\\xxxxx形式的字符串,返回xxxx这串字符串,这xxx中包含了jpg的url。
findReplaceStr(url)函数: 查找参数url的.jpg前字符串,即图片名称,返回这个名称的字符串。
getBigImageUrl(url,replaceStr)函数: 处理参数url,把图片地址用参数replaceStr替换为正确的解析地址newurl,并返回这个newurl。
这几个函数通篇没有用到什么base64解码,只使用了正则表达式re模块,你是不是搞错了?
你自己调试一下deCode要解密的数据串,这个串的长度应该是4的倍数,否则肯定是会报这个错误的
求采纳