【发布时间】:2011-06-18 07:17:56
【问题描述】:
我有一个简单的 android 客户端,它需要与一个简单的 C# HTTP 侦听器“对话”。我想通过在 POST 请求中传递用户名/密码来提供基本级别的身份验证。
MD5 散列在 C# 中是微不足道的,并为我的需要提供足够的安全性,但我似乎无法在 android 端找到如何做到这一点。
编辑:只是为了解决有关 MD5 弱点的担忧 - C# 服务器在我的 android 客户端用户的 PC 上运行。在许多情况下,他们会在自己的 LAN 上使用 wi-fi 访问服务器,但他们可能会选择从 Internet 访问服务器,但风险自负。此外,服务器上的服务需要将 MD5 传递给我无法控制的第 3 方应用程序。
【问题讨论】:
-
不要使用 MD5。使用 SHA512。
-
为什么? SHA512 并不比 MD5 难。您不希望五年后仍被使用 MD5 的旧客户端所困。
-
我希望你在你的协议中使用一个随机数,这样你就可以抛弃重放攻击。
-
@NickJohnson :回答你的问题你为什么要故意选择较弱的选项?还有另一个问题......你为什么觉得有必要对我发布的问题发表评论16个月前?但是,如果您真的想知道(如果您查看上面对 SLaks 的评论),那是 alpha 阶段代码,而 PC 端(不是我写的)使用了 MD5 散列。该要求基本上是针对不涉及额外复杂性的直通场景。当时我有大约 10 个 alpha 阶段的测试人员,他们知道这些风险。自从我提出这个问题以来,已经加入了更复杂的安全性。
-
...什么?不,这不仅是错误的,而且是非常危险的错误。
标签: android cryptography md5