[摘要] 信息的安全性一直是電子商務應用中的首要問題,本文基于VB實現(xiàn)的密碼技術(shù)能對數(shù)據(jù)進行簡單的加密與解密,首先介紹了VB中的簡易數(shù)據(jù)加解密算法的一般原理;然后在VB窗體中對此算法實現(xiàn)的界面進行詳細設計;最后是關(guān)于本算法的代碼實現(xiàn)及展望。簡單易學的算法在數(shù)據(jù)加解密上的實現(xiàn),讓用戶體驗了VB編程能力在電子商務數(shù)據(jù)安全性方面的快速應用。
[關(guān)健詞] 加解密 電子商務 VB
網(wǎng)上購物等電子商務活動在今天已十分普及與方便,雖然隨著網(wǎng)絡技術(shù)的不斷發(fā)展,各種安全機制、策略和工具不斷被研究和應用,但Internet的開放性,以及其他方面因素導致網(wǎng)絡環(huán)境下的計算機系統(tǒng)仍存在很多安全問題。電子商務中的信息安全始終是一個核心問題,因此,在客觀上需要一種強有力的安全措施來保護機密數(shù)據(jù)。密碼技術(shù)是保護網(wǎng)絡安全最有效的技術(shù)之一,采取了加密保護措施的網(wǎng)絡,可以防止非授權(quán)用戶的竊聽和非法入網(wǎng),而且也是對付惡意軟件的有效方法之一。
一、簡易數(shù)據(jù)加解密算法
加密是通過對信息的重新組合,使得只有收發(fā)雙方才能解碼并還原信息的一種手段,這種手段的原理及應用是本論文研究的重點,基于VB實現(xiàn)DES和RSA等一般的加解密算法過于復雜,且運算速度慢,特別是它的移位操作,因此,研究簡易數(shù)據(jù)加解密算法在電子商務數(shù)據(jù)保密方面具有相當?shù)默F(xiàn)實意義。從加密的主要方法看,換位法過于簡單,特別是對于數(shù)據(jù)量少的情況很容易由密文猜出明文,則簡易加解密算法采用替換法對數(shù)據(jù)進行快速加密,而且加密后的數(shù)據(jù)能正確地得到解密,當然關(guān)鍵是像VB這樣的高級語言能容易實現(xiàn)。
從各種位運算的特點看,異或運算最適合用于簡易加解密運算,因為當數(shù)1和數(shù)2進行異或運算生成數(shù)3,若再將數(shù)3和數(shù)2進行異或運算則又會還原為數(shù)1。例如將234和124進行異或運算的結(jié)果是150,再將150和124進行異或運算則結(jié)果又還原成234。其中234是要進行加密的數(shù)據(jù),124則可看成是密鑰,因此運用此特性可以將簡易數(shù)據(jù)加解密算法用函數(shù)實現(xiàn)。當用同一密鑰對某數(shù)據(jù)進行奇數(shù)次異或運算時,是對該數(shù)據(jù)進行加密運算,當進行了偶數(shù)次異或運算時則是進行解密運算。
首先,VB下的字符集采用Unicode字符集,它容量大,可置換的范圍廣;其次,在Unicode字符集中,所有字符的內(nèi)碼都占兩個字節(jié),不再象DOS下西文字符占一個字節(jié),中文字符占兩個字節(jié),這樣中、西文就都可以互換了。因此,對Unicode字符運算需要兩個密鑰,其取值范圍為0至255,這樣對同一字符的加密就有255×255=65025種可能,如果更換密鑰后對密文再進行加密,則會有無窮的可能性。其中一個密鑰用于對高字節(jié)加密,另一個密鑰用于對低字節(jié)進行加密,則可將某個字符的高字節(jié)和低字節(jié)分別加以運算,然后再將它們合成為另一個字符,從而置換原數(shù)據(jù)達到數(shù)據(jù)加密的作用,解密時則相反。
二、數(shù)據(jù)加解密界面設計
根據(jù)設計要求,首先啟動VB6.0應用程序,新建一個標準EXE工程,系統(tǒng)將會自動創(chuàng)建一個名為Form1的窗體,可在該窗體上添加2個文本框控件用來顯示加密數(shù)據(jù)與解密數(shù)據(jù)和2個命令按鈕控件;其中,可通過屬性窗口將Form1窗體的Caption屬性值設置為“簡易數(shù)據(jù)加解密”、2個文本框控件的Text屬性值都設置為“空”、命令按鈕1控件的Caption屬性值設置為“加 密”、命令按鈕2控件的屬性值設置為“解 密”,其界面設計如圖1所示。
三、數(shù)據(jù)加解密代碼實現(xiàn)
在代碼窗口中的“通用”部分定義幾個變量,本程序設計需編寫加解密函數(shù)Encrypt[5]及對Command1和Command2的Click事件進行編程,其程序清單如下:
Dim s As String
Dim d As String
Dim k1 As Byte
Dim k2 As Byte
Private Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, ByVal Key2 As Integer) As String
Dim bLowData As Byte
Dim bHigData As Byte
Dim i As Integer
Dim strEncrypt As String
Dim strChar As String
For i = 1 To Len(strSource)
strChar = Mid(strSource, i, 1)
bLowData = AscB(MidB(strChar, 1, 1)) Xor Key1
bHigData = AscB(MidB(strChar, 2, 1)) Xor Key2
strEncrypt = strEncrypt ChrB(bLowData) ChrB(bHigData)
Next
Encrypt = strEncrypt
End Function
Private Sub Command1_Click()
k1 = 128
k2 = 24
s = Encrypt(Text1.Text, k1, k2)
Text2.Text = s
Text1.Text = “”
End Sub
Private Sub Command2_Click()
d = Encrypt(s, k1, k2)
Text1.Text = d
Text2.Text = “”
End Sub
保存該工程并運行,則在文本框1中輸入待加密字符,單擊其“加 密”命令按鈕則已加密字符顯示在文本框2中,當然可單擊“解 密”命令按鈕進行字符的解密,其運行界面如圖2所示,至此對數(shù)據(jù)的簡易加解密就實現(xiàn)了。
四、結(jié)束語
密碼分析成為了解決信息安全問題的關(guān)鍵技術(shù),本設計采用面向?qū)ο蟪绦蛟O計方法進行開發(fā),讓用戶體驗了VB強大的編程能力在電子商務中數(shù)據(jù)安全性的簡單應用。以上程序只是從原理上分析后給出的實例,在實際運用當中應從字符密鑰中分別求出Key1和Key2,然后將加密后的數(shù)據(jù)再更換Key1和Key2反復進行多次加密運算,并結(jié)合換位法實現(xiàn)更大難度的加解密算法,保證電子商務中數(shù)據(jù)的安全與有效性。
參考文獻:
[1]祁明:電子商務安全與保密[M].北京:高等教育出版社,2001
[2]William stallings.密碼編碼學與網(wǎng)絡安全[M].北京:電子工業(yè)出版社,2004
[3]趙泉:網(wǎng)絡安全與電子商務[M].北京:清華大學出版社,2005
[4]朱從旭:Visual Basic程序設計綜合教程[M].北京:清華大學出版社,2005
[5]何光渝:VB常用算法大全[M].西安:西安電子科技大學出版社,2001