1

据我了解,对于 JBoss 4.0.5,密码加密主要配置在 server/.../conf/login-config.xml 中:

   <authentication>
      <login-module code = "org.jboss.security.ClientLoginModule" flag = "required">
         <module-option name = "password-stacking">useFirstPass</module-option>
         <module-option name = "multi-threaded">true</module-option>
         <module-option name = "ignorePasswordCase">false</module-option>
         <module-option name = "hashAlgorithm">md5</module-option>
         <module-option name = "hashEncoding">hex</module-option>
         <module-option name = "hashCharset">UTF-8</module-option>
      </login-module>
   </authentication>

是否可以配置比 md5 更强大的东西?如果是这样,怎么办?

4

2 回答 2

0

如果您想要比 更好的安全性,您可以将 更改hashAlgorithm为。有关更多信息,请参阅此帖子(特别是第 8.5.3.2 节。密码哈希。SHAMD5

更新

从链接的网站上,它说

用于散列密码的 java.security.MessageDigest 算法的名称。没有默认值,因此必须指定此选项才能启用散列。典型值为 MD5 和 SHA。

查看java.security.MessageDigest类后,您似乎可以提供:

  • MD5
  • SHA-1
  • SHA-256
于 2012-07-20T16:18:32.917 回答
0

好的,看来我找到了最终答案。扩展例如org.jboss.security.auth.spi.UsernamePasswordLoginModule并覆盖

protected String createPasswordHash(String,String,String)

使用您喜欢的任何算法来创建并返回哈希。该方法的第二个参数是要散列的密码。

然后将您的类设置到配置中(例如 login-config.xml)。请注意,配置(例如 login-config.xml)仍然需要指定算法。我刚刚放

<module-option name = "hashAlgorithm">FOO</module-option>

那里。

重要提示:要确定密码是否有效,将对其进行哈希处理并与之前的哈希密码进行比较。这不适用于像 bcrypt 这样的算法,它带有自己的检查方法,因为通常在相同输入上的每个散列创建不同的盐,因此产生不同的散列。对于这些算法,您必须重写该login()方法。

于 2012-07-26T13:22:23.720 回答