本人在操作数据库时,考虑到该数据库还有可能被其他软件打开,所以想能否有另外一种方式把数据库中数据进行加密呢,也 就是说,即使别人利用其他的软件打开了该数据库,看到的也是一片乱码,根本不知道数据库进而是什么内容。出于这种情况,本人利用VB中自带 RND()函数的功能编写了如下加密解密方法。 当RND()的参数(我们称它为种子)为负值时,同一种子产生同一个随机序列,同时VB还具有强大的二进制技术功能。 这样我们可以按以下方法实现字符串内容的加密解密。
源程序如下:
PublicFunctionStringEnDeCodecn(strSourceAsString,MA)AsString '该函数只对中西文起到加密作用 '参数为:源文件,密码 OnErrorGoToErrEnDeCode DimXAsSingle DimCHARNUMAsLong,RANDOMINTEGERAsInteger DimSINGLECHARAsString*1 DimstrTmpAsString IfMA<0Then MA=MA*(-1) EndIf X=Rnd(-MA) Fori=1ToLen(strSource)Step1'取单字节内容 SINGLECHAR=Mid(strSource,i,1) CHARNUM=Asc(SINGLECHAR) g:RANDOMINTEGER=Int(127*Rnd) IfRANDOMINTEGER<30OrRANDOMINTEGER>100ThenGoTog CHARNUM=CHARNUMXorRANDOMINTEGER strTmp=strTmp&Chr(CHARNUM) Nexti StringEnDeCodecn=strTmp ExitFunction ErrEnDeCode: StringEnDeCodecn="" MsgBoxErr.Number&"\"&Err.Description EndFunction
使用方法: tmp=stringEnDecn("中华人民共和国",75) 如果要解密的话,只须键入以下语句: tmp1=stringendecn(tmp,75)
如有不妥之处,请与我联系: Flea_cyp@163.com->
|