密码加密和通过网络发送的最佳方法

时间:2015-07-30 13:20:09

标签: java android security encryption

我正在开发一个Android应用程序(在JAVA中),它将提供注册/登录功能。我面临的问题是我无法找出加密密码并将其发送到服务器的最佳方法。

首先,我想到了密码的 MD5哈希并将哈希发送到服务器。当用户再次登录时,他只输入密码,应用程序会将密码转换为 MD5哈希并将其发送出去。然后,服务器将比较哈希值并对用户进行身份验证。

但问题出现了,如果网络成为中间人攻击的牺牲品,攻击者很容易将哈希发送到服务器以获取访问权限。 / p>

其次,任何可能使用的加密都不应该对Android设备造成负担。也可以使用不会在服务器端解密的加密,而是使用与上面提到的 MD5 方法相同的逻辑?

最后,我遇到了 RC4 加密和安全盐渍密码哈希。没有真正理解它们,但作者们从中得到了很大的帮助。他们对这种用途有什么好处吗?

1 个答案:

答案 0 :(得分:4)

永远不会永远 EVVVEERRR !!! 1!使用md5哈希密码。有大量的资源解释了为什么这是一个坏主意。聪明的做法是通过HTTPS / SSL将密码发送到服务器,让服务器进行密码散列(使用bcrypt或AES256之类的东西)。

SSL技术非常安全,会自动加密发送到您服务器的数据。它在安全性方面是无与伦比的,你永远不应该尝试自己推动自己的安全。安全。

Is MD5 considered insecure?

How weak is MD5 as a password hashing function

Why do people tell me this is a bad way to hash passwords

相关问题