"采用DES算法"這個說法不明確,首先是使用多少位的DES進行加密,通常是128位或192位,其次是,要先把主密鑰轉(zhuǎn)化成散列,才能供DES進行加密,轉(zhuǎn)化的方法是什么沒有明確,通常是md5,所以有的銀行卡說是128位md5 3DS就是指用md5轉(zhuǎn)換主密鑰散列,用DES進行加密,但是DES本身是64位(包含校驗碼),2DES是128位,3DES是192位,但是沒有2DES的叫法,所以128位、192位統(tǒng)稱3DES
成都創(chuàng)新互聯(lián),為您提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)純水機等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進步,是我們永遠的責任!
要完整的md5+3DS實例,需要100分以上,要不到我的空間中查找相關(guān)的文章
首先在項目的VB.NET界面,使用菜單【項目】--【添加引用】--【COM】
選擇 ?Microsoft ADO Ext. 2.x for DDL and Security
然后單擊【確定】,完成引用。
完整代碼如下:
Imports?ADOX
Public?Class?Form1
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
'創(chuàng)建空的access數(shù)據(jù)庫文件--數(shù)據(jù)庫文件.mdb,密碼為123
Dim?Mycat?As?Catalog?=?New?Catalog()
Mycat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet?OLEDB:Engine?Type=5;Data?Source=?數(shù)據(jù)庫文件.mdb;Jet?OLEDB:Database?Password=123")
'以下代碼創(chuàng)建一個名為“實驗數(shù)據(jù)表”
Dim?MyTable?As?ADOX.Table?=?New?ADOX.Table?????????'定義新表
MyTable.Name?=?"實驗數(shù)據(jù)表"????'表命名
'給表“實驗數(shù)據(jù)表”?創(chuàng)建一個字符串字段,字段名“姓名”
MyTable.Columns.Append("姓名",?,?ADOX.DataTypeEnum.adWChar)
'給表“實驗數(shù)據(jù)表”?創(chuàng)建一個整數(shù)字段,字段名“學號”
MyTable.Columns.Append("學號",?ADOX.DataTypeEnum.adInteger)????'追加一個數(shù)字型字段
'給字段“學號”創(chuàng)建一個主鍵“PimaryKey_Field”????????
MyTable.Keys.Append("學號",?ADOX.KeyTypeEnum.adKeyPrimary,?"學號")
Mycat.Tables.Append(MyTable)?'把所有的新字段追加到表
MyTable?=?Nothing
Mycat?=?Nothing
End?Sub
End?Class
字節(jié)逐位倒排序加密法是以比特為單位的換位加密方法,用VB實現(xiàn)的具體算法是:
(1) 以二進制模式打開源文件;
(2) 從源文件第I位讀取一個字節(jié),假設(shè)為字母“A”,得到“A”的ASCII值為65;
(3) 將65轉(zhuǎn)換成八位二進制串為“01000001”;
(4) 將“01000001”按字節(jié)逐位倒排序得另一個八位二進制串“10000010”;
(5) 將“10000010”轉(zhuǎn)換成十進制再寫回源文件第I位置,完成一個字節(jié)的加密;
(6) 重復(fù)(2)、(3)、(4)和(5),直到所有字節(jié)加密結(jié)束。
為了使程序模塊化,我們用函數(shù)過程ByteToBin完成將字節(jié)型數(shù)據(jù)轉(zhuǎn)換成二進制串(其實質(zhì)就是將十進制數(shù)轉(zhuǎn)換成八位二進制串);用函數(shù)過程BinToByte將二進制串轉(zhuǎn)換成字節(jié)型數(shù)據(jù)(實質(zhì)是將八位二進制串轉(zhuǎn)換成十進制數(shù)):用函數(shù)過程Reverse將八位二進制串逐位倒排序。具體程序如下:
Function ByteToBin(m As Byte) As String ' 將字節(jié)型數(shù)據(jù)轉(zhuǎn)換成八位二進制字符串
Dim c$
c$ = ""
Do While m 0
r = m Mod 2
m = m \ 2
c$ = r c$
Loop
c$ = Right("00000000" c$, 8)
ByteToBin = c$
End Function
Function Reverse(m As String) As String ' 將八位二進制字符串顛倒順序
Dim i%, x$
x = ""
For i = 1 To 8
x = Mid(m, i, 1) x
Next i
Reverse = x
End Function
Function BinToByte(m As String) As Byte ' 將八位二進制串轉(zhuǎn)換成十進制
Dim x As String * 1, y%, z%
z = 0
For i = 1 To 8
x = Mid(m, i, 1)
y = x * 2 ^ (8 - i)
z = z + y
Next i
BinToByte = z
End Function
Private Sub Command1_Click()
Dim x As Byte, i%, fname$
fname = InputBox("請輸入要加密的文件名!注意加上路徑名:")
If Dir(fname) = "" Then
MsgBox "文件不存在!"
Exit Sub
End If
Open fname For Binary As #1 ' 以二進制訪問模式打開待加密文件
For i = 1 To LOF(1) ' LOF函數(shù)是求文件長度的內(nèi)部函數(shù)
Get #1, i, x ' 取出第i個字節(jié)
x = BinToByte(Reverse(ByteToBin(x))) ' 這里調(diào)用了三個自定義函數(shù)
Put #1, i, x ' 將加密后的這個字節(jié)寫回到文件原位置
Next i
Close
MsgBox "任務(wù)完成!"
End Sub
本例可以完成對任意文件的加密與解密,對同一文件作第一次處理為加密,第二次處理為解密。要調(diào)試本程序,可用記事本在C盤根目錄下任意建立一個文本文件(假設(shè)為文件名為aaa.txt),其中的內(nèi)容任意(可以包括字母、漢字、數(shù)字、回車符、換行符等)。運行本程序后,在輸入文件名的對話框中輸入文件名(如:“C:\aaa.txt”)后回車,即可完成對文件的加密。文件加密后,可以在記事本中打開該文件查看加密效果。如果想解密,可再次運行該程序并輸入相同文件名。
網(wǎng)站題目:vb.net給文件加密 vb 加密文件
路徑分享:http://jinyejixie.com/article44/dddhghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、移動網(wǎng)站建設(shè)、、ChatGPT、網(wǎng)頁設(shè)計公司、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)