巧用VISUALBASIC的RND()函数

司马先生01

司马先生01

2016-02-19 16:31

下面是个超简单的巧用VISUALBASIC的RND()函数教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~
VISUALBASIC的RND()函数有一个重要的特征:当RND()的参数(我们称这里可以称它为种子)为负值时,同一种子(负值)产生同一个随机数序列。同时VISUALBASIC还具有强大的二进制技术功能,这样我们可以按以下思路实现文件内容加密:
  X=RND(-KEY)
  'KEY为正数
  VAULE=INT(256*RND)'产生一个随机数(以此为密码)
  OpenFILENAME$ForBinaryAs#FILENUM'打开文件
  Get#FILENUM,I,A'取文件内容
  B=AXORVAULE'得到加密文件
  结合
  C=BXORVAULE'得到解密文件(B为加密后文件内容)
  注意:这里的A非整个文件内容,可以是极少部分、几个字节甚至单个字节,若为单字节,则文件中的每个字节同不同的数异或,破译难度可见有多么大。具体过程:
  SubENDECODE(FILENAME$,MA,FILE2$)'参数为:源文件,密码,目标文件
  DimFILENUMAsInteger,XAsSingle,IAsSingle
  DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
  DimSINGLECHARAsString*1,filen2AsInteger'取单字节
  IfMA0Them
  MA=MA*(-1)
  EndIf
  X=Rnd(-MA)'参数为负
  FILENUM=FreeFile
  OpenFILENAME$ForBinaryAs#FILENUM'二进制方式打开源文件
  filen2=FreeFile
  OpenFILE2$ForOutputAs#filen2'以顺序文件打开目标文件
  ForI=1ToLOF(FILENUM)'LOF()文件字节长
  Get#FILENUM,I,SINGLECHAR'取单字节内容
  CHARNUM=Asc(SINGLECHAR)
  RANDOMINTEGER=Int(256*Rnd)'得到字母表
  CHARNUM=CHARNUMXorRANDOMINTEGER'异或
  Print#filen2,Chr$(CHARNUM);'写入目标文件
  NextI
  CloseFILENUM
  Closefilen2
  ok'调用成功对话框
  EndSub
  调用格式:ENDECODE源文件名,密码,目标文件名
  上面过程可以对任何EXE、COM、文本等文件进行加解密(奇数次加密,偶数次解密),重演性极好,保密性特优,若对上述过程进一步加工,如进行多重随机等手段处理,那么将会更上一层楼,在此不累述。
  顺便提一下,上面过程若对目标文件同样以二进制文件打开、写入,那么只能对纯西文文本进行加解密,对于纯中文文本则通过修改取双字节、I的步长为2来实现,其它(中西文结合文本、EXE、COM等文件)则将得不到预期结果,其原因可以能是ASCII大于127的字符,不能正常显示,不能用put语句正常写入文件(得到的只是空格),有兴趣者不妨一试。
  ->

展开更多 50%)
分享

猜你喜欢

巧用VISUALBASIC的RND()函数

编程语言 网络编程
巧用VISUALBASIC的RND()函数

用RND()函数加密

编程语言 网络编程
用RND()函数加密

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Excel巧用VLOOKUP函数查数据

excel
Excel巧用VLOOKUP函数查数据

怎样巧用WPS函数每页小计总和

wps教程 wps office教程
怎样巧用WPS函数每页小计总和

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

巧用IF函数合并Excel数据表

if函数 办公软件
巧用IF函数合并Excel数据表

巧用Excel函数统计体育成绩

办公软件
巧用Excel函数统计体育成绩

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

善用SFC,恢复windows8系统受损组件

善用SFC,恢复windows8系统受损组件

VB调用IMAGE控件实现图像缩放的一种方法

VB调用IMAGE控件实现图像缩放的一种方法
下拉加载更多内容 ↓