日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#創(chuàng)建文件的實(shí)戰(zhàn)應(yīng)用示例解析

由于Internet的開放性,C#創(chuàng)建文件的應(yīng)用很廣泛,如在任何文件在傳輸過程中都可能受到篡改,而且傳輸過程的不確定性,使得我們?nèi)狈τ行У姆椒ūWC傳輸文件的安全。那么如何找到解決問題的方法呢?這里我們來談?wù)勈褂肅#創(chuàng)建文件的應(yīng)用。

成都創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為臨潁企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,臨潁網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

為了避免上述情況,最普遍的做法是隨傳輸文件提供一個(gè)C#創(chuàng)建文件中的驗(yàn)證碼,用戶在收到文件后,通過重新計(jì)算文件驗(yàn)證碼并與原始驗(yàn)證碼比較,如果不匹配則表示文件在傳輸過程中發(fā)生了改變。下面,筆者就使用C#給大家演示一下具體的實(shí)現(xiàn)過程。

C#創(chuàng)建文件應(yīng)用一、創(chuàng)建FileStream

在構(gòu)建文件驗(yàn)證碼之前,首先需要加載文件,這就要用到.Net framework的FileStream類。在.Net framework下,文件都表示為一個(gè)Stream,即字節(jié)序列的抽象概念。而所有涉及文件的讀寫操作都通過Stream類的屬性和方法實(shí)現(xiàn)。下面,就是具體的實(shí)現(xiàn)代碼:

 
 
 
  1. FileStream fst= new FileStream(  
  2.  
  3. txtFile.Text,FileMode.Open,  
  4.  
  5. FileAccess.Read, FileShare.Read, 8192);  

這里使用了FileStream構(gòu)建函數(shù)的一種重載方法,需要提一下的是最后一個(gè)參數(shù)值8192,該參數(shù)值定義的是緩沖區(qū)的大小,即當(dāng)文件大于8K時(shí),以8K為單位,對文件進(jìn)行分段讀取,以提高讀取文件的性能。

C#創(chuàng)建文件二、創(chuàng)建MD5對象

在成功創(chuàng)建FileStream對象之下,接下來就可以使用MD5類計(jì)算該對象的哈希值了。這個(gè)實(shí)現(xiàn)過程非常簡單,只要先聲明一個(gè) MD5CryptoServiceProvider實(shí)例,然后使用ComputeHash方法完成計(jì)算過程,最后通過Hash屬性就可以得到計(jì)算好的字節(jié)數(shù)組了。

 
 
 
  1. ……  
  2.  
  3. MD5CryptoServiceProvider md5=  
  4.  
  5. new MD5CryptoServiceProvider();  
  6.  
  7. FileStream fst= new FileStream(txtFile.Text,FileMode.Open,  
  8.  
  9. FileAccess.Read, FileShare.Read, 8192);  
  10.  
  11. md5.ComputeHash(fst);  
  12.  
  13. byte[] hash=md5.Hash;  
  14.  
  15. ……  

C#創(chuàng)建文件三、轉(zhuǎn)換驗(yàn)證碼字符串

由于MD5哈希算法返回的是一個(gè)字節(jié)數(shù)據(jù),因此需要轉(zhuǎn)換成字符串。以下就是具體實(shí)現(xiàn)的代碼。

 
 
 
  1. ……  
  2.  
  3. byte[] hash=md5.Hash;  
  4.  
  5. StringBuilder sb=new StringBuilder();  
  6.  
  7. foreach(byte byt in hash)  
  8.  
  9. {  
  10.  
  11. sb.Append(String.Format("{0:X1}", byt));  
  12.  
  13. }  
  14.  
  15. TextBox1.Text = sb.ToString();  
  16.  
  17. ……  

在轉(zhuǎn)換過程中,首先定義了一個(gè)StringBuilder對象,這主要是處于性能上的考慮;接著遍歷MD5哈希值中的每個(gè)字節(jié),并使用String.Format方法直接將字節(jié)轉(zhuǎn)換成16進(jìn)制格式的字符串,最后輸出結(jié)果字符串即可。

注:通過本例生成的MD5驗(yàn)證碼與同類MD5驗(yàn)證碼校驗(yàn)工具在算法上完全一致,因此完全適用于實(shí)際應(yīng)用場合。

C#創(chuàng)建文件的應(yīng)用有很多,那么這次的應(yīng)用解決是不是很巧妙呢?希望對你了解和學(xué)習(xí)C#創(chuàng)建文件方面有所幫助。

【編輯推薦】

  1. C#變量初始化分類詳解
  2. 淺析C#變量初始化的具體實(shí)現(xiàn)
  3. C#創(chuàng)建文件夾的實(shí)際應(yīng)用淺析
  4. 淺析C#創(chuàng)建文件夾實(shí)現(xiàn)實(shí)例
  5. C#創(chuàng)建文件夾實(shí)現(xiàn)方法詳解

網(wǎng)頁名稱:C#創(chuàng)建文件的實(shí)戰(zhàn)應(yīng)用示例解析
本文URL:http://www.5511xx.com/article/cospoio.html