【发布时间】:2016-03-07 20:00:48
【问题描述】:
我有自己的 HTTP 请求类,我使用它作为客户端向一些远程服务器发送 HTTP 请求。 我正在实现 HTTP 摘要身份验证并使用MD5 实例来执行哈希算法。 我想知道存储 MD5 实例的有效方法是什么? 我考虑了这些选项:
-
每个请求都会保存一个 MD5 实例,所以每次发送请求时我们都会这样做:
m_md5 = MD5.Create();“创建”过程有多昂贵?
- MD5 实例将是静态的,将存储在请求类之外,我们将只使用 MD5.Create() 一次,所有请求实例将使用相同的 MD5 实例。请注意,许多线程正在创建HTTP 请求类的实例。它是线程安全的吗?
谢谢。
【问题讨论】:
-
MD5.Create 性能在我的机器上是可以接受的;大约在 26 秒内创建 1000 万个实例,每次创建 0,0026 毫秒。 HashAlgorithm 是 MD5 的基类,MD5 是 MD5CryptoServiceProvider 的基类,它不是线程安全的。
标签: c# http authentication hash md5