如何在客户端散列密码?如何从java设备(android)传输密码?

时间:2015-07-27 07:39:02

标签: java security hash md5

我们的服务器上没有清除密码文本,我们希望对用户在应用程序上输入的内容进行哈希处理,然后将其发送到服务器。(我们通过https发送)

我们在服务器上没有salting的md5(passwrod),但是如果它是安全的,我们将它更改为md5(密码+盐)或md5(md5(密码)+盐)! 我读了这个问题: Is it worth hashing passwords on the client side

但是有一个问题。如果服务器将盐发送到应用程序,这是不安全的,因为下面的这篇文章"在Web应用程序中,总是在服务器上散列"标题 https://crackstation.net/hashing-security.htm

所以如果我发送md5(密码+随机位)+随机位到服务器。服务器无法识别密码是否真实!因为服务器只有密码哈希!

2 个答案:

答案 0 :(得分:1)

对于密码哈希(source),MD5永远不安全。相反,我建议使用bcrypt算法。 执行散列操作服务器端确实是一个好主意,因此您应该依赖传输层的安全性,例如:使用SSL而不是TCP(或HTTPS,正如您已经在做的那样)。

答案 1 :(得分:0)

通常,您存储身份验证哈希服务器端,并将其与用户输入的密码中的哈希生成的客户端进行匹配。从登录表单中获取原始哈希。如果您需要更具体的帮助,请发布一些代码。希望有所帮助。