我刚刚发现了一些奇怪的行为,我认为在这里报告会很有趣,所以它可以帮助其他人(因为我在询问google时没有发现任何关于这个问题的线索)。
所以,我的环境是:
Java 7.25
GWT 2.5.1
Jboss 7.1.1
我用这种方式制作了一些登录工作流:
1)客户输入登录/密码
2)密码在客户端是SHA-512散列。
3)对客户端刚刚散列的密码进行腌制,然后在服务器端对SHA-512进行散列。
FYI,这是相同的功能散列SHA-512在客户端和服务器端。用于选择哈希算法的代码如下:
MessageDigest digest = MessageDigest.getInstance("SHA-512");当我在GWT开发模块(带有嵌入式jetty容器)上运行我的项目时,一切都运行得很好。
然后我生成我的项目的战争,并将其部署到JBoss上,问题是:方法MessageDigest.getInstance( "SHA-512 ")触发了e.getMessage() =>“SHA-512不受支持”的NoSuchAlgorithmException。但只限于客户端。服务器端散列是可以的(因此,RPC方法向服务器发送一个空密码,而不是SHA-512 )
我不认为这是预期的行为,我想知道是否有人对此有所了解。我不知道问题的根源是什么,我要深入检查一下:
如有任何建议,将不胜感激:)
发布于 2014-08-01 00:45:56
我认为这是预期的行为。如果您查看支持的GWT包的列表,java.security.*就不存在了。它在dev模式下工作,因为它在真正的JVM中运行,而不是在编译的javascript中运行。
但是为什么您甚至需要在客户端执行密码哈希操作呢?Imho应该在服务器端完成.
https://stackoverflow.com/questions/25071086
复制相似问题