java批量解析微信dat文件
本文實例為大家分享了java批量解析微信dat文件的具體代碼,供大家參考,具體內(nèi)容如下
微信圖片默認路徑: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);就是把輸入流中的東西,寫入到內(nèi)存中(buffer)。
// System.out.println("b = " + b + " b ^ 241 = " + (b ^ 241));
writer.write(b ^ 241);//241這個值是現(xiàn)算的,每個人電腦的值都不一致
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);
//
// }
// }
// }
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java程序中使用JavaMail發(fā)送帶圖片和附件的郵件
這篇文章主要介紹了Java程序中使用JavaMail發(fā)送帶圖片和附件的郵件,JavaMail是專門用來處理郵件的Java API,需要的朋友可以參考下2015-11-11
Spring 中jdbcTemplate 實現(xiàn)執(zhí)行多條sql語句示例
本篇文章主要介紹了Spring 中jdbcTemplate 實現(xiàn)執(zhí)行多條sql語句示例,可以對多個表執(zhí)行多個sql語句,有興趣的可以了解一下。2017-01-01
Java Web中常用的分頁組件(Java端實現(xiàn))
本文通過使用場景分析給大家介紹了Java Web中常用的分頁組件(Java端實現(xiàn)),非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-05-05
SpringBoot中Bean生命周期自定義初始化和銷毀方法詳解
這篇文章給大家詳細介紹了SpringBoot中Bean生命周期自定義初始化和銷毀方法,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-01-01
springboot快速搭建ftpserver服務端的詳細步驟
基于springboot,使用ftpserver快速搭建一個FTP服務端,搭建過程很簡單,我們把過程分成4個步驟,一分鐘內(nèi)快速完成構(gòu)建,感興趣的朋友跟隨小編一起看看吧2023-11-11

