vfp中如何将字符串加密解密
1、在VFP中,加解密字符串其实有很多种方法,在这里有一个函数,希望对您有所帮助:本函数功能: 1.加解密字符串.
2.如果有人非法修改密码,将提示非法修改.

2、入口: * LCZIP --判断是加密还是解密,.T. --加密,.F.解密
*Lcpass--要加解密的字符串
返回: *加解密后字符串注意:如果返回的字符串为ERROR
*证明密码出错或着密码被非法修改过.

3、FunCtion CalcPassWord
Para Lczip,Lcpass
lCPASS=Allt(Lcpass)
IF LcZip &&加密
Lcpass="DALY"+Lcpass
LCNewPass=CHR(Len(Lcpass))
*处理字符串,使它不为空因为我要把加密后的字符放到数据库,为防他人直接打开.

4、数据库看出密码为空
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得到的整数跟余数转为字符,再把两个字符和合为一个字符串.

5、*经这种处理后,已经无法得知原来的字符,只有经计算机用反方法解开
LCNewPass=PADR(LCNewPass,50,CHR(1)) &&返回50个字符长度,不足的用CHR(1)补足
Else
IF LEN(lCPASS)#50 &&如果长度出错,证明非法修改过
=MESSAGEbOX("密码被非法修改",0,_screen.caption)
Return "ERROR"
ENDIF
For i=1 TO 50
IF asc(SubStr(Lcpass,i,1))>=32 &&检查密码是否被非法修改
=MESSAGEbOX("密码被非法修改",0,_screen.caption)
Return "ERROR"
ENDIF
EndFor
LCNewPass="" &&解密
For I=0 TO (asc(SubStr(Lcpass,1,1))*2)-9
LCNewPass=LCNewPass+Chr(asc(SubStr(Lcpass,i+10,1))*32;
+asc(SubStr(Lcpass,i+11,1)))
i=i+1
EndFor
EndIF
Return LcNewPass

6、以上这种编程方式希望可以帮助你在vfp中将字符串加密解密。
