使用java对data:image/png;base64加密图片进行解密的方法
相信许多爬虫工程师都遇到过对data:image/png;
base64加密图片进行解密的问题。今天就以java+selenium写的爬虫程序对Base64编码加密的图片进行解码为例,简单探讨下解码的方法。
思路:如果你是网站的工程师那么第一步要对图片进行base64编码,然后是使用toDataURI()函数上传服务器。社会工程学推断:大部分公司依然在使用jdk8以前版本,因此使用的base64应该是sun的私有包BASE64Encoder。所以我们解码的方法就应该是一个逆向的过程:首先对路径进行解码,其次将被协议替换掉的+符合再次替换回来,最后使用对应的BASE64Decoder进行解码。
代码如下:
StringbaseImg64 ="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写入本地保存
【使用java对data:image/png;
base64加密图片进行解密的方法】经验证,切实可行哦。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 布丽吉特,人生绝对的赢家
- 进必趋|进必趋 退必迟,问起对 视勿移
- 对称加密和非对称加密的区别
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 对抗抑郁最好的方法