亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

專家教你如何用VB編寫一個加密軟件
2007-01-18   

編寫一個加密軟件,要求將源文件按字節逐位倒排序加密法加密。

字節逐位倒排序加密法是以比特為單位的換位加密方法,用VB實現的具體算法是:

(1) 以二進制模式打開源文件;

(2) 從源文件第I位讀取一個字節,假設為字母“A”,得到“A”的ASCII值為65;

(3) 將65轉換成八位二進制串為“01000001”;

(4) 將“01000001”按字節逐位倒排序得另一個八位二進制串“10000010”;

(5) 將“10000010”轉換成十進制再寫回源文件第I位置,完成一個字節的加密;

(6) 重復(2)、(3)、(4)和(5),直到所有字節加密結束。

為了使程序模塊化,我們用函數過程ByteToBin完成將字節型數據轉換成二進制串(其實質就是將十進制數轉換成八位二進制串);用函數過程BinToByte將二進制串轉換成字節型數據(實質是將八位二進制串轉換成十進制數):用函數過程Reverse將八位二進制串逐位倒排序。具體程序如下:

Function ByteToBin(m As Byte) As String   ' 將字節型數據轉換成八位二進制字符串
  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     ' 將八位二進制串轉換成十進制
  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函數是求文件長度的內部函數
    Get #1, i, x                 ' 取出第i個字節
    x = BinToByte(Reverse(ByteToBin(x))) ' 這里調用了三個自定義函數
    Put #1, i, x                 ' 將加密后的這個字節寫回到文件原位置
  Next i
  Close
  MsgBox "任務完成!"
End Sub

本例可以完成對任意文件的加密與解密,對同一文件作第一次處理為加密,第二次處理為解密。要調試本程序,可用記事本在C盤根目錄下任意建立一個文本文件(假設為文件名為aaa.txt),其中的內容任意(可以包括字母、漢字、數字、回車符、換行符等)。運行本程序后,在輸入文件名的對話框中輸入文件名(如:“C:\aaa.txt”)后回車,即可完成對文件的加密。文件加密后,可以在記事本中打開該文件查看加密效果。如果想解密,可再次運行該程序并輸入相同文件名。

責任編輯: 雪花(TEL:(010)68476636-8008)

熱詞搜索:

上一篇:加密解密教程之CMOS密碼破解不完全攻略
下一篇:SQL Server數據庫崩潰后的恢復之法

分享到: 收藏