jboss加密数据源的解密

jboss下是可以对数据源密码进行加密的,相关的文章很多,我这里要讲的是如何破解
以安装目录为D:\jboss-4.0.4.GA为例,解密的原理很简单,先找到加密所使用的方法:
java -cp "xxx.jar ……" org.jboss.resource.security.SecureIdentityLoginModule 123456

好了,找到SecureIdentityLoginModule所在的包jboss-jca.jar,找到SecureIdentityLoginModule.class,稍稍反编译一下就全明白了,加密使用的是: private static String encode(String secret),自然解密的到是:private static char[] decode(String secret)

让我们稍作一点工作,建立文件:D:\jboss-4.0.4.GA\server\default\lib\A.java,内容:
package org.jboss.resource.security;

class A{
public static void main(String args[])
throws Exception
{
SecureIdentityLoginModule seq = new SecureIdentityLoginModule();

char[] decode = seq.decode(args[0]);
System.out.println("Haha, DEcoded password: " + new String(decode));
}
}

这个类是无法直接编译的,因为SecureIdentityLoginModule,哈哈,简单,再建一个文件SecureIdentityLoginModule.java:

package org.jboss.resource.security;

class SecureIdentityLoginModule{
static String encode(String s){
return s;
}

static char[] decode(String s){
return new char[100];
}
}
这个SecureIdentityLoginModule是可以单独编译的,然后把编译后的SecureIdentityLoginModule.class放到D:\jboss-4.0.4.GA\server\default\lib\org\jboss\resource\security目录下,回到D:\jboss-4.0.4.GA\server\default\lib下就可以直接使用javac编译A.java了!

最后一步,把编译好的A.class添加到jboss-jca.jar包中(作坏事前先备份)。

调用方法:
java -cp "D:\jboss-4.0.4.GA\lib\jboss-jmx.jar;D:\jboss-4.0.4.GA\lib\jboss-common.jar;D:\jboss-4.0.4.GA\server\default\lib\jboss-jca.jar;D:\jboss-4.0.4.GA\server\default\lib\jbosssx.jar;D:\jboss-4.0.4.GA\server\default\lib\jboss-jca.jar" org.jboss.resource.security.A 64c5fd2979a86168

其中64c5fd2979a86168是加密后的字符串,得到的就是原始密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值