【问题标题】:Best method for password encrypting and sending it over the net [duplicate]密码加密和通过网络发送的最佳方法[重复]
【发布时间】: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


【解决方案1】:

永远不会 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

【讨论】:

  • 我不明白向服务器发送密码并让服务器进行密码散列,在我的情况下我有 JavaFX 应用程序。
  • 我不明白向服务器发送密码并让服务器进行密码散列,在我的情况下我有 JavaFX 应用程序。
  • @MenaiAlaEddine 您能否进一步解释一下您的问题是什么。创建自己的问题可能对您更有意义。如果你之后用链接 ping 我,我会帮你找的。​​span>
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2010-11-20
  • 2013-01-08
  • 1970-01-01
  • 2017-10-07
  • 2011-10-16
  • 2019-11-12
相关资源
最近更新 更多