很久以前就一直想寫一個加密程序,但是一直感到太麻煩而沒有動手,不過在前段時間學習.NET的過程中發現.NET的框架中封裝了與加密有關的類。而且要在.NET中進行加密編程也是很容易的。
現在就對本文使用的加密技術來做個講解。首先我們得知道的是密鑰這個專用名詞。密鑰可以這樣來理解:X+Y=Z。其中X是要被加密的數據,Y就是密鑰,Z是加密后的數據。如果在這個加法中將Y去掉,那嗎就成了X=Z。所以Y在這里就可以被看成一個變量,而密鑰也正是一個變量,當這個變量發生變化后加密的數據也就更著發生變化了。不過在有的資料中會將它稱為向量。
本文所采用的加密方法是被稱為密鑰散列值的方法。此方法是將要加密的數據和密鑰進行組合產生新的加密了的數據。
在.NET中可以說加密所要使用的類全部都集中在System.Security.Cryptography框架中,他包含了多種加密算法,所以我們使用的加密方法也是在System.Security.Cryptography框夾中。
下面我們就來看看如何實現數據的加密。
首先在窗口中添加一個Button,3個Textbox,3個Label控件。將Button的Text屬性設置為"確定"。將3個Label控件的Text屬性設置分別設置為:文字,密鑰,HMACSHA1。3個Textbox的屬性保持默認。添加控件后的圖如下:
現在雙擊Button1在Button1_Click中輸入下面的代碼:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) |
程序說明:在本代碼中我們主要是使用HMACSHA1算法實現了密鑰散列值的加密。從代碼可以看出要在.NET中進行數據的加密其實并不難,關鍵是選擇System.Security.Cryptography中具體算法。
總結:對于加密技術本文并沒設計的太多,其原因是加密技術本身在大學中就是作為單獨的一們學科,何況現在有很數專門的書在討論加密算法,有興趣的讀者可以去看看。本文主要的意圖是告訴大家,在.NET中已經將加密作為框架的一部分,我們可以根據自己的需要進行選擇具體的加密算法。而且在.NET中使用加密編程并不會太難。
加密文字"這一次我絕不放手",密鑰"123"時運行的效果。如圖
加密文字"這一次我絕不放手",密鑰"223"時運行的效果。如圖
加密文字"愛你直到永遠ZHANG RUI RUI",密鑰"223"時運行的效果。如圖
加密文字"愛你直到永遠ZHANG RUI RUI",密鑰"123"時運行的效果。如圖