使用 MD5CryptoServiceProvider 在 Web 场上进行哈希处理和密钥

本文关键字:哈希 处理 密钥 MD5CryptoServiceProvider Web 使用 | 更新日期: 2023-09-27 18:36:34

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

使用 MD5CryptoServiceProvider 在 Web 场上进行哈希处理和密钥

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

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

有一个相关的概念:消息身份验证代码(MAC)。HMAC 是最流行的形式之一,它基于以某种方式对消息和密钥进行哈希处理。


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

据此,检索 ASP.Net 自动生成的机器密钥,答案听起来是否定的(不需要密钥,并且在网络农场上可以正常工作)