VFP 中的加密算法 一、前言 在应用软件中,数据库管理软件是应用的最广泛的软件。数据库管理软件的安全性、保密性是开发、应用人员较为关心的。如何防止无关人员浏览数据库,如何防止数据库被非法修改、破坏?常用的方法是给数据库、管理程序加上密码。那么,加了密码就安全了吗?怎样才能使密码安全呢? 二、传统的密码加密方法 从 dBASE 到 dBASEIII ,从 FOXBASE 到 FOXBASE +,从 FOXPRO 到 VISUAL FOXPRO,常用加密码的方法给程序、数据库加密。常见的密码有以下几种:固定密码,简单加密的固定密码,加密变化的密码,具体分析如下: 1、固定密码 固定密码,就是系统只有一个密码,而且是固定的,不可变的。常见于用 Dbase、FOXBASE、FOXBASE +、FOXPRO2.X 开发的数据库管理系统。常用如下语句: I=1 DO WHILE .T. PWD=SPACE(8) SET CONS OFF @12,35 SAY " 口令!!!" ACCEPT TO PWD IF TRIM(PWD)<>"123456" IF I >=3 @20,32 SAY "口令错误,您不能使用!" RETURN ENDIF @12,30 SAY "第" +STR(I,1)+"次口令错!" I =I +1 ELSE @20,28 SAY "欢迎使用本系统!" EXIT ENDIF ENDDO 从以上语句不难看出,其核心是:变量 PWD 与输入值的比较。密码“1234” 是程序设计时设定的,以后应用时是无法修改的,如果修改,就要改变源程序。当然,也可以编写一段子程序用来修改密码,修改前,其判断旧密码是否正确,也用 IF TRIM(PWD)<>"123456" 语句。其灵活性很差,在 pctool 等工具出现后,保密性就显得差了。 2、简单加密的固定密码 简单加密的固定密码,是指把密码进行简单的加密,但密码仍然是固定的,不变的。简单加密一般有两种:“ 钥匙盘” 法和“ 变换法”。“ 钥匙盘” 法,就是把密码存放在一张软盘上,使用时,把“ 钥匙盘” 插入计算机,系统程序读取软盘中的密码。或把密码和操作员姓名存到数据库中,此数据库存放于软盘内,使用时把“ 钥匙盘” 插入计算机,系统读取软盘中的密码和操作员姓名,下面是此法的主要语句: USE A:KLK &&到 KLK 数据库内查找输入的操作员的姓名; I=1 DO WHILE .T. STORE SAPCE(8) TO XM @ 10,26 SAY "请输入操作员姓名:" GET XM READ LOCATE ALL FOR LTRIM(TRIM(XM))=LTRIM(TRIM(NAME)) IF .NOT. EOF() EXIT &&操作员姓名输入正确,向下执行; ENDIF IF I >=3 &&操作员姓名输入计数...