欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java批量解析微信dat文件

程序员文章站 2023-11-09 14:20:34
本文实例为大家分享了java批量解析微信dat文件的具体代码,供大家参考,具体内容如下 微信图片默认路径:c:\users\b-eet\documents\wechat...

本文实例为大家分享了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);
//
// }
// }
// }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。