FoxBASE+(DBASE)动态加密程序 长春 周春明 1994-01-28 tx=asc(subs(dtoc(date()),5,1)) n=0 set colo to /7 clear set colo to /0 @5,21 to 13,61 clear set colo to /1 @4,20 to 12,60 clear kl=0 do whil .T. set colo to 6+/1 @ 7,30 say "请输入口令:" @ 7,43 get kl pict "99" read set cons off set cons on n=n+1 if kl<>tx set colo to 4+/1 @10,30 say"口令错,再输入一次!" ? chr(7)+chr(7) if n=3 set colo to 4+/1 @11,28 say"非系统操作作员,再见!" l=0 do whil 1<100 l=l+2 enddo quit endi else @10,30 say "口令正确,进入主程序" EXIT endi enddo retu 接主控程序 程序说明: 本程序为一FOXBASE+(DBASE)动态加密的程序,其关键为操作者的上机时间。 其中:TX=ASC(SUBS(DTOC(DATE()),5,1) DATE():测试上机者上机日期 DTOC():将日期型数据转换成字符型数据 SUBS():截取字串函数 ASC():将字符型数据转换成ASCⅡ 假设上机时间为03/29/93 则经过上述转换最终结果为57即口令为57 操作者只须输入即可 由于SUBS()截取的转换成字串的("03/29/93")第五个字节的值 应在0~9之间,所以其转换成ASCⅡ后的值应在48~57之间其为一一对应的关系。 (长春 周春明)