FoxBASE+(DBASE)动态加密程序

Author: 长春 周春明 Date: 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之间其为一一对应的关系。
        (长春 周春明)