慢走丝线切割设备价格:高级密码处理

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 09:08:22

高级密码处理
www.diybl.com    时间 : 2007-06-17  作者:佚名   编辑:本站 点击:  261 [ 评论 ]
-
-
密码一般可以分为如下几种:
(1)保护能力较低的密码
(2)可变密码
(3)不定时的密码
我们先来介绍第一种方法,保护能力较低的密码是指固定密码值的方法,比较落后,如下例:
count=0
m.pass=sapce(7)
do while count<3
count=count+1
@1,1 get m.pass picture"XXXXXXX"
read

if m.pass<>"CHINESE"
wait windows"密码输入错误"
loop
else
wait windows"通过"
exit
endif
enddo
对于可变密码一般使用置换法,如下例:
----------------------------------------------------------------------
字符 |ABCDEFGHIJKLMNOPQRSTUVWXYZ
置换表 |QPWORIEUTYALSDJFHGMZNXBCV
----------------------------------------------------------------------
密码 |FOXPRO
置换后 |IDBJHD
----------------------------------------------------------------------
这种方法虽然容易破密,但是有一定的难度。
对于不定时密码,工作方式是:随即取得一个1-5的数,并声明一个变量以便记数,在每一个过程或函数执行前,累加该变量的值,当变量值等于随机值的时候,即调用密码输入过程,这种方法虽然隐秘,但是在程序中实用性不是很大,所以我们不进行细致的介绍,下面我们介绍一种高级的密码处理方式,也比较简单使用。
高级密码处理。前面我们已经介绍过置换法,高级密码则是使用计算的方式改变密码的样式,A可能变成:而B可能变成@,如下例:
加密:
tempstr=''
for i=1 to len(trim(password))
tempchr=bitxor(asc(subs(password,i,1)),123)
tempstr=tempstr+chr(tempchr)
endfor
replace passkey with tempstr
解密:
tempstr=''
for i=1 to len(trim(password))
tempchr=bitxor(asc(subs(password,i,1)),123)
tempstr=tempstr+chr(tempchr)
endfor
if passkey #tempstr
"密码错误"
endif
在这个程序里面调用了BITXOR函数,我们现在介绍一下这个函数的使用方法:

作用: 返回两个数值型数值按位进行异或运算的结果。
语法 BITXOR(nExpression1, nExpression2)

参数 nExpression1, nExpression2

指定要按位进行异或运算的两个数值。如果 nExpression1 和 nExpression2 不是整数,那 么它们在位操作之前,将转换成整数。

返回值类型 数值型
说明
BITXOR( ) 函数比较 nExpression1 和 nExpression2 的每个对应位。如果一个数的某一位为 0,并且另一个数相应位为 1,那么操作结果的对应位等于 1;否则等于 0。
下表列出对 nExpression1 和 nExpression2 按位进行异或运算的结果:

nExpression1 位 nExpression2 位 结果位
0 0 0
0 1 1
1 0 1
1 1 0
对于在VFP中输入密码时显示的*,你可以在TEXT的passwordCHR中,输入*,就可以了。

 

文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/rfoxpro/2007617/62641.html