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)
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); // // } // } // } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读