亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352289
點(diǎn)擊這里給我發(fā)消息  81721488
有事點(diǎn)擊這里…  376585780
有事點(diǎn)擊這里…  872642803
有事點(diǎn)擊這里…  459248018
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  380791050
技術(shù)支持
有事點(diǎn)擊這里…  714236853
有事點(diǎn)擊這里…  719304487
有事點(diǎn)擊這里…  1208894568
有事點(diǎn)擊這里…  61352289
在線客服
有事點(diǎn)擊這里…  531199185
有事點(diǎn)擊這里…  61352288
有事點(diǎn)擊這里…  983054746
有事點(diǎn)擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

ASP.NET中幾種加密方法

添加時間:2014-8-11 19:06:55  添加: 思海網(wǎng)絡(luò) 

MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest開發(fā)出來,經(jīng)md2、md3和md4發(fā)展而來。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù))。不管是md2、md4還是md5,它們都需要獲得一個隨機(jī)長度的信息并產(chǎn)生一個128位的信息摘要。

加密哈希函數(shù)將任意長度的二進(jìn)制字符串映射為固定長度的小型二進(jìn)制字符串。加密哈希函數(shù)有這樣一個屬性:在計算上不大可能找到散列為相同的值的兩個不同的輸入;也就是說,兩組數(shù)據(jù)的哈希值僅在對應(yīng)的數(shù)據(jù)也匹配時才會匹配。數(shù)據(jù)的少量更改會在哈希值中產(chǎn)生不可預(yù)知的大量更改。所以你很難從加密后的文字中找到蛛絲馬跡。

SHA1的全稱是Secure Hash Algorithm(安全哈希算法)

MD5 算法的哈希值大小為128位。而SHA1 算法的哈希值大小為160位。兩種算法都是不可逆。

雖說2004年8月17日的美國加州圣巴巴拉的國際密碼學(xué)會議(Crypto’2004)上,來自中國山東大學(xué)的王小云教授做了破譯MD5、HAVAL-128、 MD4和RIPEMD算法的報告,公布了MD系列算法的破解結(jié)果。宣告了固若金湯的世界通行密碼標(biāo)準(zhǔn)MD5的堡壘轟然倒塌,引發(fā)了密碼學(xué)界的軒然大波。但是我覺得對于我們做普通的軟件來說,這個加密安全程度已經(jīng)足夠使用了。

我們平常用的最多的無非就是加密用戶密碼,把加密好的密碼存儲到數(shù)據(jù)庫中,進(jìn)行密碼比較的時候,把用戶輸入的密碼再進(jìn)行加密,然后與數(shù)據(jù)庫中的密文進(jìn)行比較。至于ASP.net類中是如何實現(xiàn)加密算法的,這個我們不需要關(guān)心,會用就行了。

下面就是ASP.NET中幾種加密方法。加密算法有兩種,也就是上面提到的MD5和SHA1,這里我舉的例子是以MD5為例,SHA1大致相同,只是使用的類不一樣。

MD5 相關(guān)類:

System.Security.Cryptography.MD5 

System.Security.Cryptography.MD5CryptoServiceProvider() 

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5")

SHA1相關(guān)類:

System.Security.Cryptography.SHA1 

System.Security.Cryptography.SHA1CryptoServiceProvider() 

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "SHA1")

方法如下:(用的vs2005)

1/**//// <summary> 
2 /// 方法一:通過使用 new 運(yùn)算符創(chuàng)建對象 
3 /// </summary> 
4 /// <param name="strSource">需要加密的明文</param> 
5 /// <returns>返回16位加密結(jié)果,該結(jié)果取32位加密結(jié)果的第9位到25位</returns> 
6 public string Get_MD5_Method1(string strSource) 
7 { 
8 //new 
9  System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); 
10 
11  //獲取密文字節(jié)數(shù)組 
12  byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource)); 
13 
14  //轉(zhuǎn)換成字符串,并取9到25位 
15  string strResult = BitConverter.ToString(bytResult, 4, 8); 
16  //轉(zhuǎn)換成字符串,32位 
17  //string strResult = BitConverter.ToString(bytResult); 
18 
19  //BitConverter轉(zhuǎn)換出來的字符串會在每個字符中間產(chǎn)生一個分隔符,需要去除掉 
20  strResult = strResult.Replace("-", ""); 
21  return strResult; 
22 } 
23 
24 /**//// <summary> 
25 /// 方法二:通過調(diào)用特定加密算法的抽象類上的 Create 方法,創(chuàng)建實現(xiàn)特定加密算法的對象。 
26 /// </summary> 
27 /// <param name="strSource">需要加密的明文</param> 
28 /// <returns>返回32位加密結(jié)果</returns> 
29 public string Get_MD5_Method2(string strSource) 
30 { 
31  string strResult = ""; 
32 
33  //Create 
34  System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); 
35 
36  //注意編碼UTF8、UTF7、Unicode等的選擇 
37  byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource)); 
38 
39  //字節(jié)類型的數(shù)組轉(zhuǎn)換為字符串 
40  for (int i = 0; i < bytResult.Length; i++) 
41  { 
42   //16進(jìn)制轉(zhuǎn)換 
43   strResult = strResult + bytResult[i].ToString("X"); 
44  } 
45  return strResult; 
46 } 
47 
48 /**//// <summary> 
49 /// 方法三:直接使用HashPasswordForStoringInConfigFile生成 
50 /// </summary> 
51 /// <param name="strSource">需要加密的明文</param> 
52 /// <returns>返回32位加密結(jié)果</returns> 
53 public string Get_MD5_Method3(string strSource) 
54 { 
55  return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5"); 
56 }

這些加密函數(shù)都是在服務(wù)器端執(zhí)行,也就是說,當(dāng)用戶輸入密碼后,從客戶端到服務(wù)器端傳輸時,用戶的密碼沒有任何保護(hù),很危險。銀行的做法是在客戶端安裝ActiveX控件,在客戶端就把一些重要信息進(jìn)行加密,再發(fā)送。這個偶就不會拉,很希望能學(xué)習(xí)學(xué)習(xí)做這種ActiveX控件。

關(guān)鍵字:ASP.NET、服務(wù)器、數(shù)據(jù)庫

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機(jī)打開網(wǎng)站