java批量解析微信dat文件
2019-12-02 18:12
1891 查看
本文实例为大家分享了java批量解析微信dat文件的具体代码,供大家参考,具体内容如下
微信图片默认路径:C:\Users\b-eet\Documents\WeChat Files\b-eethoven\FileStorage\Image
微信文件利用Xor加密,计算之前需要知道异或值是多少。(好像每个人电脑上面的异或值都不同,在24行更改异或值)
异或值可用电脑自带的计算机计算(Xor)
package cn.kgw; import java.io.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class WeChatImgRevert { public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(10); Runnable r = () -> { String[] fileName = GetFileName.getFileName("D:/dat"); int i = 0; for (String name : fileName) { try (InputStream reader = new FileInputStream("D:/dat/" + name)) { try (OutputStream writer = new FileOutputStream("D:/photo/" + name + ".jpg")) { byte[] bytes = new byte[1024]; int b; while ((b = reader.read(bytes)) != -1) {//这里的in.read(bytes);就是把输入流中的东西,写入到内存中(buffer)。 // System.out.println("b = " + b + " b ^ 241 = " + (b ^ 241)); writer.write(b ^ 241);//241这个值是现算的,每个人电脑的值都不一致 writer.flush(); } } System.out.println(i++); } catch (Exception e) { e.printStackTrace(); } } }; pool.submit(r); pool.shutdown(); // System.out.println("--------------------------------"); // // ArrayList<String> listFileName = new ArrayList<String>(); // // GetFileName.getAllFileName("F:/dat", listFileName); // // for (String name : listFileName) { // System.out.println(name); // } } } class GetFileName { public static String[] getFileName(String path) { File file = new File(path); String[] fileName = file.list(); return fileName; } // public static void getAllFileName(String path, ArrayList<String> fileName) { // // File file = new File(path); // // File[] files = file.listFiles(); // // String[] names = file.list(); // // if (names != null) // // fileName.addAll(Arrays.asList(names)); // // for (File a : files) { // // if (a.isDirectory()) { // // getAllFileName(a.getAbsolutePath(), fileName); // // } // } // } }
以上就是本文的全部内容,希望对大家的学习有所帮助
相关文章推荐
- 批量解析微信dat文件
- java微信开发API解析(三)-高级功能的前奏----获取以及保存接口调用凭证
- java微信开发API解析(四)-自定义菜单以及个性化菜单实现
- java微信开发API解析(六)-综合运用(消息处理、自定义菜单响应处理、用户自动分组处理;包含源码)
- 用java中的map解析微信MicroMsg里的CompatibleInfo.cfg和systemInfo.cfg
- java微信开发API解析(二)-获取消息和回复消息
- java微信开发API解析(三)-高级功能的前奏----获取以及保存接口调用凭证 标签: 微信java办微信开发微信文档解析 2016-04-06 20:50 1101人阅读 评论(0) 收藏 举报
- 解析Java中的微信斗牛棋牌源码String、StringBuilder、StringBuffer类
- java微信开发API解析(二)-获取消息和回复消息
- 微信公众帐号开发教程第10篇-解析接口中的消息创建时间CreateTime (Java版)
- Java微信对账接口返回值解析
- Java微信二次开发之10-解析接口中的消息创建时间CreateTime 并转换成需要的格式
- java微信开发API解析(一)-服务器接入
- 聊聊高并发(四十二)解析java.util.concurrent各个组件(十八) 任务的批量执行和CompletionService
- 【微信Java开发 --番外篇】错误解析
- java微信开发API解析(一)-服务器接入
- java微信开发API解析(二)-获取消息和回复消息
- java 集合遍历同时删除时报ConcurrentModificationException错解析【转自微信hollischuang】
- java微信开发API解析(五)-用户管理
- java微信开发API解析(七)-网页开发-微信网页授权