刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

Openfire用户密码加密方法

Posted on 2010-12-24 13:29  刘政道  阅读(1505)  评论(0编辑  收藏  举报
公司有项目,需要将Openfire和OA系统做集成,Openfire用户密码加密的问题拦倒了我,
必须搞清楚其加密方式才能解决的啊,OA中用户的密码是md5加密的。

刚开始构想是将工程中集成openfire.jar,然后使用其user下的加密方式,但不幸的是加入了openfire.jar包,我的Tomcat就老报错,再说加这个包估计太庞大了,没有必要。

 

再想

 

查证多方资料,知道Openfire是通过org.jivesoftware.util.Blowfish.java实现的加密。
在Openfire的源代码中可以获取到org.jivesoftware.util.Blowfish.java,翻翻源代码,
原来是使用Blowfish的encryptString(String password)和decryptString(String encryptedString)两个方法执行加解密。
可new Blowfish(String passwordKey)需要passwordKey,上哪里找?
原来在openfire的数据库中有表ofproperty,其中就有passwordKey的值,这是openfire安装时自动生成的。

此外,可以独立使用org.jivesoftware.util.Blowfish.java进行加解密操作。

在网上搜索了两天,才算将此问题圆满解决,感谢网络啊。