`
buerkai
  • 浏览: 166930 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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,修改成你的类。

 

 

分享到:
评论

相关推荐

    Openfire表结构_数据字典

    Openfire 表结构 数据字典 进行修改密码等操作请参考: Openfire用户密码的保存及加密、解密 http://blog.csdn.net/seeol/article/details/21638663

    Android项目源码仿微信登录注册聊天换肤二维码扫描.zip

    搭建的时候,把服务器配到8G内存笔记本上,网上得知,Openfire每个线程大约占4k内存,那理论上是可以80w 用户,当然实际肯定没那么多,Openfire在一台8G的主流服务器上支持30W的用户肯定没有问题。 简单说明一下...

    Android即时通讯YiIM.zip

    9. 获取及修改vard(用户头像、昵称、性别、修改签名等) 10. 消息提醒,声音提醒,振动提醒 11. 清空会话及聊天记录 12. 注册账号 13. 语音通话(初步添加) 14. 发送图片(初步添加) 15. 好友列表缓存 16. Vcard...

    Android聊天项目D3Xmpp.zip

    主要是实现注解实例化ChangePwdActivity—— 修改密码页ChatActivity—— 聊天页。Intent必须参数chatName(聊天对象,单聊为对方id,群聊为群名称),可选参数chattype。chatType有单聊和群聊两个参数,不传则默认...

    通用网络实时教学系统 v6.0.zip

    当前版本开放服务器设置,使用XMPP协议,推荐Openfire。 提供试用服务器,登录窗格服务器输入框填入:jx128.cn。 通用网络实时教学系统服务器的安装   把下载好的安装包解压到当前文件夹,之后双击...

    java开源包1

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包11

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包2

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包3

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包6

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包5

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包10

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包4

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包8

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包7

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    java开源包9

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    JAVA上百实例源码以及开源项目源代码

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后...

    java开源包101

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    Java资源包01

    与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...

    JAVA上百实例源码以及开源项目

    还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏  Java编写的网页版魔方游戏,编译后...

Global site tag (gtag.js) - Google Analytics