第一步:先破解密码
先写个Java文件
import java.util.Scanner;
public class xjarMima {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String algorithm = scanner.nextLine();
int keysize = Integer.parseInt(scanner.nextLine());
int ivsize = Integer.parseInt(scanner.nextLine());
String password = scanner.nextLine();
//javac xjarMima.java -d target -encoding utf-8
//linux 环境下 javac xjarMima.java
System.out.println("所用的加密算法"+algorithm);
System.out.println("所用的密钥长度 "+keysize);
System.out.println("所用的向量长度"+ivsize);
System.out.println("所用的密码"+password);
}
}
然后编译成class
window环境
javac xjarMima.java -d target -encoding utf-8
Linux环境
javac xjarMima.java
获取密码
我这里放到Linux下执行的
把xjarMima.class文件和xjar/xjar.go/xxxx-encrypt.jar放到一个文件夹下执行命令
./xjar java xjarMima -jar xxxx-encrypt.jar
如果出现./xjar权限不够:执行 chmod 777 xjar
输出信息如下:得到密码
所用的加密算法 = AES/CBC/PKCS5Padding
所用的密钥长度 = 128
所用的向量长度 = 128
所用的密码 = Passw0rd
第二步还原未加密jar包
项目引入xjar包
网上都让引入仓库下载或者maven插件下载jar包,我这都不好使
我在这里下载到本地jar包 :Index of /repositories/public/com/github/core-lib/xjar/4.0.2 (scijava.org)
然后放到项目的lib目录下
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar</artifactId>
<version>4.0.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/xjar-4.0.2.jar</systemPath>
</dependency>
还原jar包
主方法运行
public static void main(String[] args) throws Exception {
try {
//设置密码
String password = "Passw0rd";
XKey xKey = XKit.key(password);
XBoot.decrypt("D:\\桌面\\fsdownload\\encrypt.jar", "D:\\桌面\\fsdownload\\decrypted.jar", xKey);
}catch (Exception e){
System.out.println(e.getMessage());
}
}