(1)以二進制模式打開源文件;
(2)從源文件的I位讀取壹個字節,假設字母為“A”,得到“A”的ASCII值為65;
(3)將65轉換成八位二進制串為“0100001”;
(4)將“0100001”逐位排序,得到另壹個八位二進制串“1000010”;
(5)將“1000010”轉換成十進制並寫回源文件的第I位,完成壹個字節的加密;
(6)重復(2)、(3)、(4)和(5),直到所有字節都被加密。
為了使程序模塊化,我們使用函數進程ByteToBin來完成字節數據到二進制字符串的轉換(其本質是將十進制數轉換為八位二進制字符串);用函數process BinToByte將二進制串轉換成字節數據(本質上是將八位二進制串轉換成十進制數):用函數process Reverse將八位二進制串逐位排序。具體程序如下:
函數byte tobin (m as byte) as string '將字節數據轉換為八位二進制字符串。
Dim c$美元
c$ = " "
在m & lt& gt0
r = m Mod 2
m = m \ 2
c $ = r & amp加元
環
c $ = Right(" 00000000 " & amp;加元,8)
ByteToBin = c$
結束功能
函數reverse (m as string) as string '反轉八位二進制字符串的順序。
維度i%,x美元
x = " "
對於i = 1到8
x = Mid(m,I,1)& amp;x
接下來我
反向= x
結束功能
函數bintobyte (m as string) as byte '將八位二進制字符串轉換為十進制。
Dim x As String * 1,y%,z%
z = 0
對於i = 1到8
x = Mid(m,I,1)
y = x * 2 ^ (8 - i)
z = z + y
接下來我
BinToByte = z
結束功能
私有子命令1_Click()
Dim x As Byte,i%,fname$
Fname = InputBox("請輸入要加密的文件名!請註意路徑名: ")
如果Dir(fname) = ",則
MsgBox "文件不存在!
出口接頭
如果…就會結束
Open fname For Binary As #1 '以二進制訪問模式打開要加密的文件。
對於i = 1到LOF(1)' LOF函數是壹個內部函數,用於查找文件長度。
Get #1,I,x '取出第I個字節。
x = bintobyte(reverse(byte Tobin(x))'這裏有三個自定義函數,稱為。
Put #1,I,x '將加密的字節寫回到文件的原始位置。
接下來我
關閉
MsgBox“任務完成!”
末端接頭
這個例子可以完成任何文件的加密和解密。同壹文件的第壹次處理是加密,第二次處理是解密。要調試這個程序,可以用記事本在c盤根目錄下隨機創建壹個文本文件(假設文件名為aaa.txt),任意內容(包括字母、漢字、數字、回車、換行符等。).運行此程序後,在文件名輸入對話框中輸入文件名(如“C:\aaa.txt”),然後按回車鍵完成文件的加密。文件加密後,可以在記事本中打開文件查看加密效果。如果妳想解密它,妳可以再次運行該程序,並輸入相同的文件名。