當前位置:ag真人国际官网-ag旗舰厅官方网站 » 密碼管理 » vb軟體加密

vb軟體加密-ag真人国际官网

發布時間: 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」)後回車,即可完成對文件的加密。文件加密後,可以在記事本中打開該文件查看加密效果。如果想解密,可再次運行該程序並輸入相同文件名。

熱點內容
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
經典矩陣c語言 發布:2024-11-19 08:56:23 瀏覽:268
网站地图