vfp中如何将字符串加密解密

2026-04-02 22:36:46

1、在VFP中,加解密字符串其实有很多种方法,在这里有一个函数,希望对您有所帮助:本函数功能: 1.加解密字符串.

2.如果有人非法修改密码,将提示非法修改.

vfp中如何将字符串加密解密

2、入口: * LCZIP --判断是加密还是解密,.T. --加密,.F.解密

*Lcpass--要加解密的字符串

返回: *加解密后字符串注意:如果返回的字符串为ERROR

*证明密码出错或着密码被非法修改过.

vfp中如何将字符串加密解密

3、FunCtion CalcPassWord

Para Lczip,Lcpass

lCPASS=Allt(Lcpass)

IF LcZip &&加密

Lcpass="DALY"+Lcpass

LCNewPass=CHR(Len(Lcpass))

*处理字符串,使它不为空因为我要把加密后的字符放到数据库,为防他人直接打开.

vfp中如何将字符串加密解密

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得到的整数跟余数转为字符,再把两个字符和合为一个字符串.

vfp中如何将字符串加密解密

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

vfp中如何将字符串加密解密

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

vfp中如何将字符串加密解密

猜你喜欢