java批量解析微信dat文件
作者:b_eethoven 发布时间:2022-12-26 01:53:28
标签:java,微信,dat文件
本文实例为大家分享了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);
//
// }
// }
// }
}
来源:https://blog.csdn.net/weixin_42440768/article/details/88870077


猜你喜欢
- android获取手机通讯录联系人信息private void getPhoneContacts() {
- 本文实例为大家分享了Unity3D实现摄像机镜头移动并限制角度的具体代码,供大家参考,具体内容如下摄像机镜头跟随鼠标移动,并限制上下左右的移
- 前面已经认识了不同的数据类型,你们有没有尝试过让不同的数据类型进行运算呢?int a = 1;double b = a;Console.Wr
- Builder模式使用链式结构创建复杂对象,将过程与结果分开,创建过程中可以自行组合。使用场景一个对象,不同组合,不同顺序生成不同的结果优点
- 前言前段时间因为工作的需要用到Spring事件,翻翻文档将功能实现了,但是存在少许理解不畅的地方,今天有空来梳理梳理。需求背景叶子同学在新入
- 本文实例为大家分享了android使用OPENGL ES绘制圆柱体的具体代码,供大家参考,具体内容如下效果图:编写jiem.java&nbs
- 此项目使用了OpenCVSharp加载本地摄像头,多个摄像头支持切换展示,也可以展示rtsp地址。使用NuGet如下:代码如下一、创建Mai
- 前言其实一般的程序猿根本不用了解这么深,只有当你到了一定层次,需要了解jvm内部运行机制,或者高并发多线程下,你写的代码对内存有影响,你想做
- c#中的CultureInfo类CultureInfo类位于System.Globalization命名空间内,这个类和命名空间许多人都不是
- 在之前,已经学习到了线程的创建和状态控制,但是每个线程之间几乎都没有什么太大的联系。可是有的时候,可能存在多个线程多同一个数据进行操作,这样
- 记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻
- 问:怎样才能将XML文件导入SQL Server 2000? 答:将XML文件导入SQL Server有若干种方法,这里提供其中的3种: 大
- 本文实例讲述了Java正则验证电话,手机,邮箱,日期,金额的方法。分享给大家供大家参考,具体如下:package com.hooypay.t
- Java 本身就自带 JS 引擎,自从 Java 1.6 开始就支持了,愈来愈好。我对 js 比较熟悉,因此有个大胆的想法,为什么不用自带
- 目录1、如果类的方法没有返回值,该方法的返回值类型应当是abstract。()2、代码String str=”123456a”;int i=
- 硬件环境:小米4Android版本:6.0咱们先看效果图:我把代码贴出来:AndroidMainfest.xml文件(需要新增camera权
- 本文实例分析了C#中委托和事件的区别,分享给大家供大家参考之用。具体如下:大致来说,委托是一个类,该类内部维护着一个字段,指向一个方法。事件
- JVM运行原理首先从“.java”代码文件,编译成“.class”字节码文件,然后类加载器将“.class”字节码文件中的类给加载带JVM中
- Android 仿微信的键盘切换(录音,表情,文字,其他),IM通讯,类似朋友圈只要涉及到文字等相关的app都会要涉及到键盘的处理,今天就给
- C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际