自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談ASP.NET和VB.NET的MD5加密函數(shù)

開發(fā) 后端
本文將簡單談談ASP.NET和VB.NET的MD5加密函數(shù),MD5加密函數(shù)是一種比較綜合的方法啊,應用范圍很廣,希望本文能對大家有所幫助。

在ASP中,我們使用過如動網(wǎng)論壇等用的ASP中MD5函數(shù)加密出的字符串則如:

1165d25d8cd021d5

而在ASP.NET中下面的方法:

  1. System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text,"MD5") 

進行MD5加密出來的結(jié)果卻是:

12C403B91165D25D8CD021D5F9B5BB7F

究其原因,是因為,在ASP中的MD5函數(shù)是使用了32位MD5Hashvalue中的第9~25位再變小寫作為密文。知道這個原因,把ASP.NET的結(jié)果稍加處理就可以用來比較老數(shù)據(jù)庫中的密碼字串了。

在ASP的MD5函數(shù)中第353、354行:

  1. 'MD5=LCase(WordToHex(a)&WordToHex(b)&WordToHex(c)&WordToHex(d))  
  2. MD5=LCase(WordToHex(b)&WordToHex(c))'Icropthistofit16bytedatabasepassword:D 

第一句是取全部的32位密文,第二句則是取中間第9~25位為16位密文。

到了VB.NET的MD5加密函數(shù)問題又來了,在VB.NET的MD5加密函數(shù)里,無法用到System.Web.Security名稱空間,無法用上面簡單的辦法進行MD5加密。故我寫了下面這個函數(shù)來處理:

VB.NET:

VB.NET的MD5加密函數(shù)

  1. PublicSharedFunctionMD5(ByValstrSourceAsString,ByValCodeAsInt16)AsString 

'這里用的是ascii編碼密碼原文,如果要用漢字做密碼,可以用UnicodeEncoding,但會與ASP中的MD5函數(shù)不兼容

  1. DimdataToHashAsByte()=(NewSystem.Text.ASCIIEncoding).GetBytes(strSource)  
  2. DimhashvalueAsByte()=CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"),System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)  
  3. DimiAsInteger  
  4. SelectCaseCode  
  5. Case16'選擇16位字符的加密結(jié)果  
  6. Fori=4To11 
  7. MD5+=Hex(hashvalue(i)).ToLower  
  8. Next  
  9. Case32'選擇32位字符的加密結(jié)果  
  10. Fori=0To15 
  11. MD5+=Hex(hashvalue(i)).ToLower  
  12. Next  
  13. CaseElse'Code錯誤時,返回全部字符串,即32位字符  
  14. Fori=0Tohashvalue.Length-1  
  15. MD5+=Hex(hashvalue(i)).ToLower  
  16. Next  
  17. EndSelect  
  18. EndFunction 

【編輯推薦】

  1. ASP.NET的DataList和Repeater控件
  2. 淺析ASP.NET的IIS映射
  3. 概述ASP.NET狀態(tài)類型
  4. 淺談ASP.NET和Web服務器
  5. ASP.NET的EnableViewState屬性
責任編輯:彭凡 來源: 51CTO.com
相關(guān)推薦

2011-05-19 09:20:21

VB.NETASP.NET

2009-07-24 15:58:20

ASP.NET MD5ASP.NET SHA

2009-10-26 14:06:03

2009-07-28 17:03:55

ASP.NET VB.

2009-10-14 12:51:41

VB.NET Data

2009-10-20 09:39:04

VB.NET Butt

2009-10-28 10:31:23

VB.NET Impl

2009-10-14 10:08:05

VB.NET編寫DEC

2009-07-24 10:52:42

ASP.NET ISA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-20 15:30:11

ASP.NET應用

2009-10-13 11:22:46

VB.NET調(diào)用Web

2009-10-12 13:32:58

VB.NET線程構(gòu)造器

2009-10-16 10:14:26

VB.NET使用Fil

2009-10-19 11:28:42

VB.NET語言.NET開發(fā)語言

2009-10-15 17:50:48

VB.NET Spli

2009-10-21 10:45:50

VB.NET Quic

2009-08-05 15:29:33

ASP.NET For

2009-07-23 15:44:39

ASP.NET MVC

2009-07-28 17:49:30

ASP.NET定期回收
點贊
收藏

51CTO技術(shù)棧公眾號