FOXBASE数据文件的加密

Author: 重庆建筑工程学院 聂崇峡 Date: 1992-05-01

        为了避免上述情况,我们对FOXBASE加以改进,使它具有对数据文件的加密功能。
        一、增加MFOXPLUS.EXE的口令处理功能修改后的MFOXPLUS.EXE,对DBF文件有加密功能。使得每个DBF文件可以单独设置口令,经过设置口令后的DBF文件,必须在口令回答正确后,才能打开使用。分别提供一条设置、传送口令的指令。经过设置口令的数据文件必须与经过修改的MFOXPLUS.EXE系统一道运行。
        二、口令设置
        口令设置,即加密。将用户期望设置的口令,经过变处理之后,放入DBF文件的头部的控制信息区,并重新组织DBF文件的头部,使它们按照原来的格式来看,是无法解释和理解的,或者说是错误的。这样的文件如果与未经修改的MFOXPLUS.EXE一道运行,自然打不开。〗三、传送口令
        在试图打开一信设置了口令的文件之前,要先传送口令。假如TOWD是传送口令的指令,有一个ABC.DBF文件,口令为1234,
        则 TOWD 1234
        USE ABC
        才能够打开。否则就打不开文件,当然,口令错了也打不开。
        四、口令处理
        凡是试图打开数据文件的指令,如USE;未打开文件时,使用LIST命令等,系统都读入相应的文件,并判断是否设置了口令。如果是,就从口令区(由TOWD存放口令的地址)取出口令,与文件中的口令比较,如相等,就将文件头还原为正确格式;否则,不予还原,数据文件也就无法使用。
        对于没有设置口令的文件,修改后的系统不作任何附加处理。
        五、数据内容部分未作加密处理的数据部分,未作加密处理。否则象排序、统计等涉及全部记录的操作,速度会大大减慢。事实上,当我们已经找到读出和写入控制程序后,在读出之后作一次解密处理;在写入之前作加密处理都是比较容易的。
        由于数据部分未加密,用DEBUG仍然可以查寻、修改数据。但因为没有字段相对应,修改也有一定难度。比起用USE打开之后修改,就更难一些了。