vfp
在VFP中,加解密字符串其实有很多种方法,在这里有一个函数,希望对您有所帮助:本函数功能: 1.加解密字符串.2.如果有人非法修改密码,将提示非法修改.
入口: * LCZIP --判断是加密还是解密,.T. --加密,.F.解密*Lcpass--要加解密的字符串返回: *加解密后字符串注意:如果返回的字符串为ERROR*证明密码出错或着密码被非法修改过.
FunCtion CalcPassWordPara Lczip,LcpasslCPASS=Allt(Lcpass)IF LcZip &&加密Lcpass='DALY'+LcpassLCNewPass=CHR(Len(Lcpass))*处理字符串,使它不为空因为我要把加密后的字符放到数据库,为防他人直接打开.
数据库看出密码为空For i=1 To Len(Lcpass)LCNewPass=LCNewPass+Chr(asc(SubStr(Lcpass,i,1))/32);+Chr(asc(SubStr(Lcpass,i,1))%32)EndFor*取出字符串中的单个字符,并把它转为ASCII码.*把ASCII码除于32得到的整数跟余数转为字符,再把两个字符和合为一个字符串.
*经这种处理后,已经无法得知原来的字符,只有经计算机用反方法解开LCNewPass=PADR(LCNewPass,50,CHR(1)) &&返回50个字符长度,不足的用CHR(1)补足ElseIF LEN(lCPASS)#50 &&如果长度出错,证明非法修改过=MESSAGEbOX('密码被非法修改',0,_screen.caption)Return 'ERROR'ENDIFFor i=1 TO 50IF asc(SubStr(Lcpass,i,1))>=32 &&检查密码是否被非法修改=MESSAGEbOX('密码被非法修改',0,_screen.caption)Return 'ERROR'ENDIFEndForLCNewPass='' &&解密For I=0 TO (asc(SubStr(Lcpass,1,1))*2)-9LCNewPass=LCNewPass+Chr(asc(SubStr(Lcpass,i+10,1))*32;+asc(SubStr(Lcpass,i+11,1)))i=i+1EndForEndIFReturn LcNewPass
以上这种编程方式希望可以帮助你在vfp中将字符串加密解密。