2015-12-03 176 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)成員都是線程安全。任何實例成員不保證是線程安全的