當前位置:首頁 » 密碼管理 » vb軟體加密

vb軟體加密

發布時間: 2024-11-15 21:17:23

A. 用VB編寫程序怎樣給文件夾加密

加密原理:循環使用密碼中每個字元的ASCII碼值與文件的每個位元組進行異或運算,然後寫入文件即可。這種加密方法是可逆的,即對明文進行加密得到密文,用相同的密碼對密文進行加密就得到明文。
界面設計:在窗體From1上放置驅動器列表框(Driver1)、目錄列表框(Dir1)、文件列表框(File1)各一個,這三個控制項相互配合,用來確定要加密文件的位置。其中File1的Pattern屬性設為「*.TXT」,即僅顯示文本文件;再放置一個Check控制項,用來控制顯示文件的類型,其Caption屬性設為「顯示全部文件」;接著放置兩個文本框,Text1顯示文件內容,Text2用來輸入密碼,其Passchar屬性設為「*」,一個Label控制項,其Caption屬性設為「密碼」;最後,放置兩個命令按鈕,其Caption屬性分別設為「加密/解密」和「退出」。
程序代碼:
Option Explicit
Dim i As Long
Dim databuff() As Byte 』定義數組用於存放文件內容
Dim addbuff() As Byte 』定義數組用於存放加密後的文件內容
Dim password() As Byte 』定義數組用於存放密碼的ASCII值
Dim filename As String
Private Sub Check1_Click()�
If Check1.Value Then 』控制是否顯示全部文件
File1.Pattern = "*.*"
Else
File1.Pattern = ".txt"
End If
End Sub
Private Sub Command1_Click()�
Dim j As Integer
Dim password_len As Integer
password_len = Len(Text2.Text)
ReDim password(password_len) As Byte
For i = 0 To password_len - 1 』把密碼轉化為ASCII碼
password(i)= Asc(Mid(Text2.Text,i + 1,1))
Next
If filename = "" Then Exit Sub
Open filename For Binary As #1 』讀取要加密的文件內容
ReDim databuff(LOF(1))
Get #1,, databuff
Close #1
ReDim addbuff(UBound(databuff))As Byte
For i = 0 To UBound(databuff)
If j >= password_len Then 』循環使用密碼
j = 0
Else
j = j + 1
End If
addbuff(i)= databuff(i)Xor password(j)』進行異或運算
Next
Open filename For Binary As #1 』把加密後的內容寫入文件
Put #1,,addbuff
Close #1
Text1 = StrConv(addbuff vbUnicode)』顯示加密後的文件內容
Text2.Text = ""
End Sub
Private Sub Command2_Click()�
.End
End Sub
Private Sub Dir1_Change()�
File1.Path = Dir1.Path 』與文件列表框相關聯
End Sub
Private Sub Drive1_Change()�
On Error GoTo a0
Dir1.Path = Drive1.Drive 』與目錄列表框相關聯
a0:If Err Then MsgBox(Error(Err))』發生錯誤,提示錯誤內容
End Sub
Private Sub File1_Click()』單擊文件時,顯示文件內容
filename = Dir1.Path + File1.filename
If filename = "" Then Exit Sub
Open filename For Binary As #1
ReDim databuff(LOF(1))
Get #1,,databuff
Close #1
Text1 = StrConv(databuff,vbUnicode)
End Sub

B. VB加密和解密數字

最簡單的就是移位法:就是將數字加上(或者減掉)某個定值;

比如:加密的時候加上5

那麼:

0 + 5 = 5 轉換成5

1 + 5 = 6 轉換成6

2 + 5 = 7 轉換成7

3 + 5 = 8 轉換成8

4 + 5 = 9 轉換成9

5 + 5 = 10 去掉十位 轉換成0

6 + 5 = 11 去掉十位 轉換成1

7 + 5 = 12 去掉十位 轉換成2

8 + 5 = 13 去掉十位 轉換成3

9 + 5 = 14 去掉十位 轉換成4


那麼解密的時候,就減掉5。

對於小於5的數字,要加上10以後再減5。


請看附件:


C. VB 加密與解密的程序代碼

加密:

PrivateFunction JiaMi(ByVal varPass As String) As String '參數varPass是需要加密的文本內容

Dim varJiaMi As String * 20

Dim varTmp As Double

Dim strJiaMi As String

Dim I

For I = 1 To Len(varPass)

varTmp = AscW(Mid$(varPass, I, 1))

varJiaMi = Str$(((((varTmp * 1.5) / 5.6) * 2.7) * I))

strJiaMi = strJiaMi & varJiaMi

NextI

JiaMi = strJiaMi

EndFunction

解密函數:

PrivateFunction JieMi(ByVal varPass As String) As String '參數varPass是需要解密的密文內容

Dim varReturn As String * 20

Dim varConvert As Double

Dim varFinalPass As String

Dim varKey As Integer

Dim varPasslenth As Long

varPasslenth = Len(varPass)

For I = 1 To varPasslenth / 20

varReturn = Mid(varPass, (I - 1) * 20 + 1, 20)

varConvert = Val(Trim(varReturn))

varConvert = ((((varConvert / 1.5) * 5.6) / 2.7) / I)

varFinalPass = varFinalPass & ChrW(Val(varConvert))

NextI

JieMi = varFinalPass

EndFunction

(3)vb軟體加密擴展閱讀:

注意事項

編寫加密程序,將用戶輸入的一個英文句子加密為加密字元串,然後輸出加密字元串。假設句子長度不超過100個字元。

根據給定的句子加密函數原型SentenceEncoding,編寫函數SentenceEncoding調用給定的字元加密函數CharEncoding完成句子加密。

然後,編寫主程序提示用戶輸入英文句子,然後調用函數SentenceEncoding對句子加密,最後輸出加密後的句子。

字元加密規則為大寫字母和小寫字母均加密為其補碼, 我們定義ASCII碼值相加為』A』+』Z』即155的兩個大寫字母互為補碼,ASCII碼值相加為』a』+』z』即219的兩個小寫字母互為補碼。

空格用@代替,句號以#代替,其它字元用句點代替。

函數原型:

void SentenceEncoding(char *soure,char *code);

功能:對待加密字元串source加密後保存加密字元串到code.

參數:char *soure,指向待加密句子的字元串指針;

char *code 指向加密字元串的字元串指針;

字元加密函數代碼。

D. 怎樣用VB編寫一個文件加密程序

位元組逐位倒排序加密法是以比特為單位的換位加密方法,用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」)後回車,即可完成對文件的加密。文件加密後,可以在記事本中打開該文件查看加密效果。如果想解密,可再次運行該程序並輸入相同文件名。

熱點內容
為什麼安卓沒法下載神武4 發布:2024-11-15 23:46:18 瀏覽:335
巫師3和英雄聯盟哪個吃配置 發布:2024-11-15 23:46:10 瀏覽:805
qt文件加密 發布:2024-11-15 23:40:35 瀏覽:738
咸陽做腳本的 發布:2024-11-15 23:38:57 瀏覽:773
途觀與探岳哪個配置高 發布:2024-11-15 23:30:39 瀏覽:518
dhcp伺服器如何更新ip地址 發布:2024-11-15 23:18:40 瀏覽:126
ai清除緩存 發布:2024-11-15 23:12:38 瀏覽:603
電腦版我的世界如何退出伺服器 發布:2024-11-15 23:00:39 瀏覽:313
哪裡有存儲器零售商 發布:2024-11-15 22:55:42 瀏覽:47
手機如何設置鎖屏密碼個性 發布:2024-11-15 22:44:08 瀏覽:418