使用MD5CryptoServiceProvider在Webfarms上进行哈希和键控

时间:2012-06-06 23:48:18

标签: c# .net md5 hash

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

2 个答案:

答案 0 :(得分:2)

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

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

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


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

答案 1 :(得分:0)

根据这个,Retrieve ASP.Net AutoGenerated MachineKey,答案听起来没有(不需要密钥,并且在webfarm上工作正常)