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

Java 密码加密和通过网络发送的最佳方法,java,android,security,encryption,Java,Android,Security,Encryption,我正在开发一个android应用程序(JAVA),它将提供注册/登录功能。我面临的问题是,我无法找出加密密码并将其发送到服务器的最佳方法 首先,我想对密码做一个MD5散列,然后将散列发送到服务器。当用户再次登录时,他只需输入密码,应用程序就会将密码转换为MD5 hash,并将其发送过来。然后,服务器将比较散列并对用户进行身份验证 但这里出现的问题是,如果网络成为中间人攻击的牺牲品,攻击者很容易将哈希发送到服务器以获得访问权 其次,任何可能使用的加密都不应该对安卓设备造成负担。另外,是否可以使用与

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

首先,我想对密码做一个MD5散列,然后将散列发送到服务器。当用户再次登录时,他只需输入密码,应用程序就会将密码转换为MD5 hash,并将其发送过来。然后,服务器将比较散列并对用户进行身份验证

但这里出现的问题是,如果网络成为中间人攻击的牺牲品,攻击者很容易将哈希发送到服务器以获得访问权

其次,任何可能使用的加密都不应该对安卓设备造成负担。另外,是否可以使用与上述MD5方法相同的逻辑,而不在服务器端解密加密


最后,我遇到了RC4加密和安全加密密码散列。我并不真正理解它们,但作者们对它们有很大的了解。那么它们对这种用途有用吗?

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

SSL技术非常安全,将自动加密发送到服务器的数据。就安全性而言,它是无与伦比的,你永远不应该试图用安全性来“自我保护”


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

SSL技术非常安全,将自动加密发送到服务器的数据。就安全性而言,它是无与伦比的,你永远不应该试图用安全性来“自我保护”


在服务器上正确地执行此操作,如我在这里所示:那是5年前的事了。从每个站点看,它是否仍然安全?是的。如果一个算法不能持续5年,那么它就不安全。在服务器上正确地这样做,正如我在这里展示的:那是5年前的事了。从每个站点看,它是否仍然安全?是的。如果一个算法不能持续5年,那么它就不安全。我不理解向服务器发送密码并让服务器进行密码散列,在我的情况下,我有JavaFX应用程序。我不理解向服务器发送密码并让服务器进行密码散列,在我的例子中,我有一个JavaFX应用程序。@MenaiAlaEddine您能进一步解释一下您的问题是什么吗。对你来说,提出自己的问题可能更有意义。如果你事后用链接ping我,我会帮你看一看。我不明白向服务器发送密码并让服务器做密码哈希,在我的情况下,我有JavaFX应用程序。我不明白向服务器发送密码并让服务器做密码哈希,在我的例子中,我有一个JavaFX应用程序。@MenaiAlaEddine您能进一步解释一下您的问题是什么吗。对你来说,提出自己的问题可能更有意义。如果你以后用链接ping我,我会帮你看看。