您的位置:首页 > 运维架构

openfire 注册用户加密方法解析

2014-09-13 09:25 399 查看
Openfire是通过org.jivesoftware.util.Blowfish.java实现的加密。

使用Blowfish的encryptString(String password)和decryptString(String
encryptedString)两个方法执行解密

可new Blowfish(String passwordKey)需要passwordKey,上哪里找?

原来在openfire的数据库中有表ofproperty,其中就有passwordKey的值,这是openfire安装时自动生成的。

openfire每次自动生成数据库的时候这个属性都是不同的,所以如果数据库变化了,原来的用户信息导入是没有用的。

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

将org.jivesoftware.util.Blowfish.java拷贝到自己的项目中来,示例代码如下:

[java] view
plaincopy

public String getEncryPWD(String noEncryPWD) {



String resultPWD = null;

String passWordKey = null; //passwordKey,从openfire数据库中读取

/*

* 下面这段是从ofProperty表中查询得到passwordKey的值。

OfProperty ofProperty = ofPropertyMapper.selectByPrimaryKey("passwordKey");

if (ofProperty != null) {

passWordKey = ofProperty.getPropvalue();

} */

Blowfish blowFish = new Blowfish(passWordKey); //根据加密key初始化

passWordKey = blowFish.encryptString(noEncryPWD); //加密

return resultPWD; //返回加密后的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: