? ? ? 相信许多爬虫工程师都遇到过对data:image/png;base64加密图片进行解密的问题。今天就以java+selenium写的爬虫程序对Base64编码加密的图片进行解码为例,简单探讨下解码的方法。
思路:如果你是网站的工程师那么第一步要对图片进行base64编码,然后是使用toDataURI()函数上传服务器。社会工程学推断:大部分公司依然在使用jdk8以前版本,因此使用的base64应该是sun的私有包BASE64Encoder。所以我们解码的方法就应该是一个逆向的过程:首先对路径进行解码,其次将被协议替换掉的+符合再次替换回来,最后使用对应的BASE64Decoder进行解码。
代码如下:
String? baseImg64 ="data:image/png;base64,/......xyz".replaceAll("data:image/png;base64,","");/*截取图片字符....xyz*/
baseImg64 = URLDecoder.decoder(baseImg64);/*解码URI*/
baseImg64 = baseImg64.replaceAall(" ","+");/*找回原来编码后图片数据中的+号*/
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(baseImg64);/*使用BASE64Decoder解码*/
。。。。。。使用imageio写入本地保存
经验证,切实可行哦。