GWT + JBoss + MessageDigest +"不支持SHA-512"

时间:2014-08-01 00:28:28

标签: gwt hash jboss

我刚刚发现了一些奇怪的行为,我认为在这里举报是有趣的,所以它可以帮助其他人(因为我在询问Google时没有找到任何关于这个问题的线索)。

所以,我的环境是:

Java 7.25

GWT 2.5.1

Jboss 7.1.1

我以这种方式制作了一些登录工作流程:

1)客户输入登录名/密码

2)密码是客户端的SHA-512哈希

3)客户端密码刚刚哈希,然后SHA-512在服务器端进行哈希处理。

仅供参考,这与客户端和服务器端的SHA-512相同。用于选择哈希算法的代码是这样的:

MessageDigest digest = MessageDigest.getInstance("SHA-512");

当我在GWT developpement mod上运行我的项目(带有embed jetty容器的那个)时,一切运行正常。

然后我生成一个我的项目的战争,并将其部署在JBoss上,并且存在问题: MessageDigest.getInstance(“SHA-512”)方法使用e.getMessage()=>触发NoSuchAlgorithmException; “不支持SHA-512”。但只在客户端。服务器端散列是可以的(基本上,RPC方法向服务器而不是SHA-512发送空密码)

我不认为这是预期的行为,我想知道是否有人对此有一些线索。 ATM我不知道问题的根源是什么,我要深入检查它:

  • 尝试使用gwt 2.6.1(即使更改日​​志没有提到这样的内容)
  • 尝试其他JBoss版本
  • 尝试其他哈希算法
  • 检查战争构建日志(可能是一个maven问题?我怀疑但是谁知道)

任何建议都将受到高度赞赏:)

1 个答案:

答案 0 :(得分:0)

我认为这是预期的行为。如果您查看supported packages for GWT列表,则java.security.*不存在。它在dev模式下工作,因为它在真正的JVM中运行,而不是在已编译的javascript中运行。

但是为什么你甚至需要在客户端进行密码散列? Imho这应该在服务器端完成。