MyException - 我的异常网
当前位置:我的异常网» 开源软件 » openfire用户密码批改

openfire用户密码批改

www.MyException.Cn  网友分享于:2013-09-09  浏览:272次
openfire用户密码修改

Openfire中的用户密码加密方式是采用的是Blowfish

Blowfish是一个64位分组及可变密钥长度的分组密码算法,可用来加密64Bit长度的字符串。算法由两部分组成:密钥扩展和数据加密。

密钥扩展把长度可达到448位的密钥转变成总共4168字节的几个子密钥。

数据加密由一个简单函数迭代16轮,每一轮由密钥相关的置换,密钥相关和明文相关的代替组成。所有的运算都是32位字的加法和异或,仅有的另一个运算是每轮的四个查表。

 

Blowfish算法位于org.jivesoftware.util.Blowfish.java,其中encryptString(String plaintext)加密,encryptString(String text)解密。

 

追溯到调用这个2个方法的地方为,org.jivesoftware.openfire.auth.AuthFactory,其功能为管理整个openfire用户认证,包括客户端和后台管理员用户密码认证。AuthFactory底层连接数据库的类是org.jivesoftware.openfire.auth.DefaultAuthProvider,实现了密码验证,查询密码,设置密码等功能。

其中org.jivesoftware.openfire.handler.IQAuthHandler,验证客户端IQ类型报文(即验证客户端请求上来的登录等操作);

org.jivesoftware.openfire.commands.admin.user.AuthenticateUser,验证后台工具登录。

 

如果需要修改密码加密方式,需要修改AuthFactoryDefaultAuthProvider类,也可以增加一个类如下:

package org.jivesoftware.openfire.auth;

import org.jivesoftware.openfire.user.UserNotFoundException;

public class ZJAuthProvider  implements AuthProvider{

 @Override
 public boolean isPlainSupported() {
  return true;
 }

 @Override
 public boolean isDigestSupported() {
  return true;
 }

 @Override
 public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void authenticate(String username, String token, String digest) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public void setPassword(String username, String password) throws UserNotFoundException, UnsupportedOperationException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public boolean supportsPasswordRetrieval() {
  return true;
 }

 
}

然后修改provider.auth.className的值,openfire默认值是:org.jivesoftware.openfire.auth.DefaultAuthProvider,修改成你的类。

 

 

文章评论

每天工作4小时的程序员
每天工作4小时的程序员
10个调试和排错的小建议
10个调试和排错的小建议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我的丈夫是个程序员
我的丈夫是个程序员
旅行,写作,编程
旅行,写作,编程
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
鲜为人知的编程真相
鲜为人知的编程真相
Java程序员必看电影
Java程序员必看电影
程序员都该阅读的书
程序员都该阅读的书
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员必看的十大电影
程序员必看的十大电影
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员应该关注的一些事儿
程序员应该关注的一些事儿
一个程序员的时间管理
一个程序员的时间管理
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员和编码员之间的区别
程序员和编码员之间的区别
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
如何成为一名黑客
如何成为一名黑客
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
我是如何打败拖延症的
我是如何打败拖延症的
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为什么程序员都是夜猫子
为什么程序员都是夜猫子
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
漫画:程序员的工作
漫画:程序员的工作
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员的鄙视链
程序员的鄙视链
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
中美印日四国程序员比较
中美印日四国程序员比较
那些争议最大的编程观点
那些争议最大的编程观点
代码女神横空出世
代码女神横空出世
 程序员的样子
程序员的样子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有