最近对于weblogic的加密解密一阵折腾。。。 在此将遇到的问题和解决的方法记录下来
weblogic的加密解密调用其实很简单 直接调用weblogic的jar包方法就好
import weblogic.security.internal.SerializedSystemIni;
import weblogic.security.internal.encryption.ClearOrEncryptedService;
import weblogic.security.internal.encryption.EncryptionService;
public class Decrypt
{
private static EncryptionService es = null;
private static ClearOrEncryptedService ces = null;
static{
es = SerializedSystemIni.getExistingEncryptionService();
ces = new ClearOrEncryptedService(es);
}
public static String decrypt(String despass){
return ces.decrypt(despass);
}
public static String encrypt(String pass){
return ces.encrypt(pass);
}
}
进入weblogic的安装目录例如%WLS_HOME%\wlserver_10.3\server\lib,运行 java -jar wljarbuilder.jar就能生成wlfullclient.jar文件
将wlfullclient.jar导入你的项目
同时需要将weblogic的加密信息文件加入到当前项目下
现在当前目录新建一个security文件 然后将SerializedSystemIni.dat 放到文件夹下面 就可以使用weblogic的加密解密了
这里特别注意一件事情,weblogic每个域的加密方式貌似是不同的 也就是说每个域下的加密文件貌似只适用于当前域
所以针对某个域中的密码解密需要当前域的加密文件,这应该是weblogic的一个安全机制吧。
这个地方当时没注意,结果坑大发了。。。
另补充 weblogic11的需要加入cryptoj.jar