偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開(kāi)發(fā) 后端
本文將簡(jiǎn)單談?wù)凙SP.NET和VB.NET的MD5加密函數(shù),MD5加密函數(shù)是一種比較綜合的方法啊,應(yīng)用范圍很廣,希望本文能對(duì)大家有所幫助。

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

1165d25d8cd021d5

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

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

進(jìn)行MD5加密出來(lái)的結(jié)果卻是:

12C403B91165D25D8CD021D5F9B5BB7F

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

在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ù)問(wèn)題又來(lái)了,在VB.NET的MD5加密函數(shù)里,無(wú)法用到System.Web.Security名稱空間,無(wú)法用上面簡(jiǎn)單的辦法進(jìn)行MD5加密。故我寫(xiě)了下面這個(gè)函數(shù)來(lái)處理:

VB.NET:

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

  1. PublicSharedFunctionMD5(ByValstrSourceAsString,ByValCodeAsInt16)AsString 

'這里用的是ascii編碼密碼原文,如果要用漢字做密碼,可以用UnicodeEncoding,但會(huì)與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錯(cuò)誤時(shí),返回全部字符串,即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服務(wù)器
  5. ASP.NET的EnableViewState屬性
責(zé)任編輯:彭凡 來(lái)源: 51CTO.com
相關(guān)推薦

2011-05-19 09:20:21

VB.NETASP.NET

2009-10-26 14:06:03

2009-07-24 15:58:20

ASP.NET MD5ASP.NET SHA

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編寫(xiě)DEC

2009-10-13 11:22:46

VB.NET調(diào)用Web

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應(yīng)用

2009-10-19 11:28:42

VB.NET語(yǔ)言.NET開(kāi)發(fā)語(yǔ)言

2009-10-16 10:14:26

VB.NET使用Fil

2009-10-12 13:32:58

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

2009-10-15 17:50:48

VB.NET Spli

2010-01-22 15:56:03

VB.NET獲取當(dāng)前U

2009-11-10 13:27:30

VB.NET RND(

2009-10-20 14:03:48

VB.NET數(shù)組聲明VB.NET數(shù)組初始化

2009-10-21 10:45:50

VB.NET Quic
點(diǎn)贊
收藏

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