标题用隐形字符制作加密口令
栏目软件世界
作者郭会清
发布1998年第21期12版
在FoxPro数据库管理系统中,最重要的莫过于程序的保密问题了。为了防止无关人员访问数据库,人们设计了各种加密口令,但它们都有几个共同的问题:一是他人可通过阅读源程序或其他方式巧取口令(即使.EXE文件也可反编译为.PRG文件);二是若口令放在口令盘上,软盘易损坏,甚至丢失。那么有没有一个更为稳妥的方法呢?答案是肯定的。笔者利用FoxPro 2.5B for DOS编写了如下一个小程序,只要把它放在系统主程序之前,将使系统保密程度大大提高:
set talk off
set color to /n
clear
set color to w/r
define window lockwin from 5,5 to 15,72 title "口令检测窗口"double
acti window lockwin
@2,10 say "请操作员输入正确的口令,输完后回车:"
set color to /w
@2,45 say space(5)
@2,45 say ' '
set color to w/r
n=1
do while n<=3
set cons off
acce to password
set cons on
if password=ltrim(str(val(time())*10))+' '
&&上行单引号内的空格用“Alt+255”进行输入,即按住Alt不放,再依次按小键盘上的255,然后一起放开
exit
endif
if n=3
clear
wait space(14)+"对不起,您无权使用本系统,按任意键退出!"
clear
quit
endif
@n+3,20 say "口令错,请再次仔细输入!"
n=n+1
enddo
clear all
&&以下接系统主程序
从程序上我们可以看出,口令password通过取时间函数而获得,其值为时钟点数(小时)的10倍,并随时间的移动而不断变化;其后的隐形空格使窃看源程序者以为是个真空格而不知所云。至于合法用户,比如现在是23点多,则口令输入230,并按“Alt+255”,即可进入系统。