我刚刚发现了一些奇怪的行为,我认为在这里举报是有趣的,所以它可以帮助其他人(因为我在询问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我不知道问题的根源是什么,我要深入检查它:
任何建议都将受到高度赞赏:)
答案 0 :(得分:0)
我认为这是预期的行为。如果您查看supported packages for GWT列表,则java.security.*
不存在。它在dev模式下工作,因为它在真正的JVM中运行,而不是在已编译的javascript中运行。
但是为什么你甚至需要在客户端进行密码散列? Imho这应该在服务器端完成。