2015-12-03 170 views
1

我有我自己的HTTP请求类,我使用它作为客户端向某些远程服务器发送HTTP请求。 我正在实施一个HTTP摘要认证并使用MD5实例来预先执行散列算法。 我想知道什么是有效的方式来存储MD5实例? 我想过这些选项:HTTP摘要身份验证 - 在多个http请求之间共享MD5实例

  1. 每个请求都将举行MD5实例,因此该请求被发送,我们会做的每一次:m_md5 = MD5.Create();

    有多贵“创建”的过程?

  2. MD5实例将是静态的,将被存储在请求类之外,我们将只使用MD5.Create()一次,并且所有请求实例将使用相同的MD5实例。请注意,很多线程都是创建HTTP请求类的实例。它是线程安全的吗?

Thnaks。

+1

MD5.Create性能在我的机器上是可以接受的;在大约26秒内创建1000万个实例,每个创建为0.0026毫秒。 HashAlgorithm是MD5CryptoServiceProvider的基类MD5的基类,它不是线程安全的。 –

回答

0

由于奥古兹厄兹居尔Said第二optiond没有可能的,因为MD5不线程safeas我们可以看到here:这种类型的

任何公共静态(在Visual Basic中的Shared)成员都是线程安全。任何实例成员不保证是线程安全的