用RND()函数加密
浙江 傅昌盛
Visual Basic的RND()函数有一个重要的特征:当RND()的参数(我们称这里可
以称它为种子)为负值时,同一种子(负值)产生同一个随机数序列。同时Visual
Basic还具有强大的二进制技术功能,这样我们可以按以下思路实现文件内容加密:
X=RND(-KEY) ’KEY为正数
VAULE=INT(256*RND) ’产生一个随机数(以此为密码)
Open FILENAME$ For Binary As #FILENUM’打开文件
Get #FILENUM,I,A ’取文件内容
B=A XOR VAULE ’得到加密文件
结合
C=B XOR VAULE’得到解密文件(B为加密后文件内容)
注意:这里的A非整个文件内容,可以是极少部分、几个字节甚至单个字节,若为
单字节,则文件中的每个字节同不同的数异或,破译难度可见有多么大。具体过程:
Sub ENDECODE(FILENAME$,MA,FILE2$)'参数为:源文件,密码,目标文件
Dim FILENUM As Integer,X As Single,I As Single
Dim CHARNUM As Integer,RANDOMINTEGER As Integer
Dim SINGLECHAR As String *1,filen2 As Integer'取单字节
If MA<0 Them
MA=MA*(-1)
End If
X=Rnd(-MA)'参数为负
FILENUM=FreeFile
Open FILENAME$ For Binary As #FILENUM '二进制方式打开源文件
filen2=FreeFile
Open FILE2$ For Output As #filen2’以顺序文件打开目标文件
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载