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,验证后台工具登录。
如果需要修改密码加密方式,需要修改AuthFactory和DefaultAuthProvider类,也可以增加一个类如下:
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用户密码的保存及加密、解密 http://blog.csdn.net/seeol/article/details/21638663
搭建的时候,把服务器配到8G内存笔记本上,网上得知,Openfire每个线程大约占4k内存,那理论上是可以80w 用户,当然实际肯定没那么多,Openfire在一台8G的主流服务器上支持30W的用户肯定没有问题。 简单说明一下...
9. 获取及修改vard(用户头像、昵称、性别、修改签名等) 10. 消息提醒,声音提醒,振动提醒 11. 清空会话及聊天记录 12. 注册账号 13. 语音通话(初步添加) 14. 发送图片(初步添加) 15. 好友列表缓存 16. Vcard...
主要是实现注解实例化ChangePwdActivity—— 修改密码页ChatActivity—— 聊天页。Intent必须参数chatName(聊天对象,单聊为对方id,群聊为群名称),可选参数chattype。chatType有单聊和群聊两个参数,不传则默认...
当前版本开放服务器设置,使用XMPP协议,推荐Openfire。 提供试用服务器,登录窗格服务器输入框填入:jx128.cn。 通用网络实时教学系统服务器的安装 把下载好的安装包解压到当前文件夹,之后双击...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以...
还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后...