0

MD5CryptoServiceProvider的散列算法是否使用某种密钥?如果我有一个 webfarm(或 Windows Azure 中的多个 web 角色),在不同服务器上的相同输入的情况下,哈希的结果是否总是相同?还是我必须在所有服务器的 web.config 上设置某种键?

4

2 回答 2

2

加密哈希函数将始终给出相同的结果。他们不拿钥匙。

但是对于大多数应用程序,我会避免使用 MD5 来支持 SHA-2。MD5 已被破坏,特别是发现碰撞很容易。MD5 和普通的 SHA-2 都不适合密码散列,如果那是你正在做的。

有一个相关的概念:Message-Authentication-Codes (MAC)。作为最流行的形式之一,HMAC 基于以某种方式散列消息和密钥。


为防止参数被篡改,我推荐使用 HMAC-SHA-256,使用 Base64 编码。如果它太长,你可以截断它。你不应该做的是使用Hash(key + message),这很容易受到长度扩展攻击。

于 2012-06-07T00:04:21.273 回答
0

据此,Retrieve ASP.Net AutoGenerated MachineKey,答案听起来像否(不需要密钥,并且在 webfarm 上一切正常)

于 2012-06-06T23:58:48.257 回答