*我们的VFP数据太开放了些,用Excel随便打开一个DBF表,里面的数据就一览无遗。如果数据是比较敏感的话,可就坏事了。例如:有些程序员将数据录入员的程序登录密码是放在一个VFP表里,如果经过加密,就算用Excel打开DBF表,也是看不到
FUNCTION md5_H(x, y, z)
RETURN BITXOR(BITXOR(x , y) , z)
ENDFUNC
FUNCTION md5_I(x, y, z)
RETURN BITXOR(y , BITOR(x , BITNOT(z)))
ENDFUNC
PROCEDURE md5_FF(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
ENDPROC
PROCEDURE md5_GG(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
ENDPROC
PROCEDURE md5_HH(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
ENDPROC
PROCEDURE md5_II(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
ENDPROC
FUNCTION Hex(lByte)
x=''
DO WHILE lByte>0
IF lByte>=16
y=lByte%16
ELSE
y=lByte
ENDIF
IF y<10 .and. y>=0
x=STR(y,1)+x
ELSE
x=CHR(65+y-10)+x
ENDIF
lByte=(lByte-y)/16
ENDDO
RETURN x
ENDFUNC
FUNCTION WordToHex(lvalue)
lResult=''
FOR lCount = 0 TO 3
lByte = BITAND(RShift(lvalue, lCount * BITS_TO_A_BYTE) , m_lOnBits(BITS_TO_A_BYTE ))
lResult = lResult + RIGHT('0' + Hex(lByte), 2)
ENDFOR
RETURN lResult
ENDFUNC
******************************
VFP的MD5加密方法源代码 来自淘豆网www.taodocs.com转载请标明出处.