【发布时间】:2015-10-21 21:09:51
【问题描述】:
我正在开发一个将提供注册/登录功能的 android 应用程序(在 JAVA 中)。我面临的问题是我无法确定加密密码并将其发送到服务器的最佳方法。
首先,我想对密码进行MD5 哈希,然后将哈希发送到服务器。当用户再次登录时,只需输入密码,应用程序会将密码转换为MD5 hash并发送过去。然后服务器会比较哈希值并对用户进行身份验证。
但是这里出现的问题是,如果网络成为中间人攻击的牺牲品,攻击者很容易将哈希发送到服务器以获得访问权限。
其次,任何将要使用的加密都不应该对 Android 设备造成负担。是否也有可能在服务器端不解密,而是使用与上述MD5方法相同的逻辑?
最后,我遇到了 RC4 加密和 Secure Salted Password 哈希。没有真正理解它们,但作者对它们做了很大的贡献。那么它们对这种用途有什么好处吗?
【问题讨论】:
-
正确地在服务器上执行此操作,正如我在这里展示的那样:stackoverflow.com/a/2861125/3474
-
那是 5 年前的事了。从各个角度来看,它仍然安全吗?
-
是的。如果算法不能持续 5 年,它就是不安全的。
标签: java android security encryption