java批量解析微信dat文件

作者:b_eethoven 时间:2022-12-26 01:53:28 

本文实例为大家分享了java批量解析微信dat文件的具体代码,供大家参考,具体内容如下

微信图片默认路径:C:\Users\b-eet\Documents\WeChat Files\b-eethoven\FileStorage\Image
微信文件利用Xor加密,计算之前需要知道异或值是多少。(好像每个人电脑上面的异或值都不同,在24行更改异或值)
异或值可用电脑自带的计算机计算(Xor)

java批量解析微信dat文件


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);
//
// }
// }
// }

}

来源:https://blog.csdn.net/weixin_42440768/article/details/88870077

标签:java,微信,dat文件
0
投稿

猜你喜欢

  • 关于@Scheduled不执行的原因分析

    2021-06-27 17:13:20
  • 新手小白看过来学JAVA必过IO流File字节流字符流

    2022-09-22 07:42:02
  • Java如何生成4位、6位随机数短信验证码(高效实现)

    2023-01-24 18:05:20
  • SpringBoot如何动态修改Scheduled(系统启动默认执行,动态修改)

    2023-11-29 06:13:27
  • Java Condition条件变量提高线程通信效率

    2022-11-26 13:32:46
  • pageHelper一对多分页解决方案示例

    2022-08-22 19:55:22
  • C#简单数字图像处理程序

    2022-03-07 05:16:31
  • C# Volatile的具体使用

    2023-11-21 11:14:50
  • Spring事务失效的一种原因关于this调用的问题

    2022-07-19 20:59:21
  • C#连接ODBC数据源的方法

    2023-04-20 07:30:33
  • Java实现企业员工管理系统

    2023-08-22 16:44:50
  • Android列表实现(2)_游标列表案例讲解

    2022-11-15 16:49:55
  • Android 自定义圆形带刻度渐变色的进度条样式实例代码

    2023-11-23 13:21:38
  • C#单例模式与多线程用法介绍

    2023-03-25 09:36:07
  • 基于Java字符编码的使用详解

    2023-02-26 23:13:01
  • intellij idea14打包apk文件和查看sha1值

    2022-05-25 13:18:37
  • MyBatis找不到mapper文件的实现

    2023-12-15 09:22:11
  • 详解C++中的指针、数组指针与函数指针

    2023-04-11 05:35:24
  • Java中ResultSetMetaData 元数据的具体使用

    2021-06-25 12:38:13
  • c# Selenium爬取数据时防止webdriver封爬虫的方法

    2023-06-24 07:50:51
  • asp之家 软件编程 m.aspxhome.com