批量解析微信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);
//
//            }
//        }
//    }

}


**文件下载地址 **

1、不会计算异或值的,可下载此文件计算:https://306t.com/file/28095605-450840414
提取码:123456

2、需要批量解析的,可以下载此java文件:https://306t.com/file/28095605-450840413
提取码:123456

--------------------------------------------分割线---------------------------------------------------------

下面是一些java相关的书籍,大家有兴趣的可以去下载看一下
以下书籍的提取码皆为:123456
阿里的《java开发手册》==>各种各样的开发规范,提升代码B格用的-_-
https://306t.com/file/28095605-451122435
阿里的《不止代码》==>让你摆脱crud成为真正的技术大牛(其实就是指明了成为技术大牛的方向,有兴趣的可以看一下)
https://306t.com/file/28095605-451122477
《深入理解 Spring Cloud与微服务构建(方志朋)》高清中文版PDF(这本我还没开始看,不过是方志明老师写的可以收藏一下)
https://306t.com/file/28095605-451122529
《Java+8函数式编程》这本书强烈推荐(函数式编程和普通编程的对比,大概就是三维对二维。等你学会了可以对别人降维是打击)
https://306t.com/file/28095605-451122547
《深入理解Java虚拟机JVM高级特性与最佳实践(周志明)》(想深入了解虚拟机的同学可以收藏了)
https://306t.com/file/28095605-451122608
《 Spring Cloud与Docker微服务架构实战-完整版》
https://306t.com/file/28095605-451122683

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值