加密:
java_path=$(source /opt/wildfly/bin/env.conf && echo $JAVA_HOME)&&$java_path/bin/java -cp /opt/wildfly/modules/system/layers/base/org/picketbox/main/picketbox-4.0.21.Beta1.jar:/opt/wildfly/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar org.picketbox.datasource.security.SecureIdentityLoginModule 'password'
解密:
解密需要额外编辑jar包
1、首先使用eclipse,或其他java的IDE软件,新建一个java工程
2、创建包路径org.picketbox.datasource.security
3、在该路径下创建类文件SecureIdentityLoginModule.java
packageorg.picketbox.datasource.security;public classSecureIdentityLoginModule {private staticString encode(String secret) {returnsecret;
}private static char[] decode(String secret) {return new char[] { '0', '1', '2', '3', '4', '5'};
}
}
4、依然在这个包路径下创建类文件PasswordDecoder.java
packageorg.picketbox.datasource.security;importjava.lang.reflect.Method;public classPasswordDecoder {public static void main(String args[]) throwsException {
Class cla = SecureIdentityLoginModule.class;
Method m= cla.getDeclaredMethod("decode", String.class);
m.setAccessible(true);
Object obj= m.invoke(null, args[0]);char[] chars = (char[]) obj;
System.out.println(newString(chars));
}
}
5、然后编译PasswordDecoder.java这个类文件,编译成功后会生成相应的.class文件。
6、找到/opt/wildfly/modules/system/layers/base/org/picketbox/main/picketbox-4.0.21.Beta1.jar这个jar包,使用压缩软件打开,找到org\picketbox\datasource\security\这个路径,将编译得到的PasswordDecoder.class文件放到该路径下
7、然后执行下面的命令就可以得到明文密码
java_path=$(source /opt/wildfly/bin/env.conf && echo $JAVA_HOME)&&$java_path/bin/java -classpath /opt/wildfly/bin/picketbox-4.0.21.Beta1.jar:/opt/wildfly/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar org.picketbox.datasource.security.PasswordDecoder 密文