热情软件屋

 

VFP如何对数据库进行加密


编号:QA000631
建立日期: 1999年3月12日 最后修改日期:1999年3月12日
所属类别:

david:
    vfp5.0
    win95
    请问:程序编完连编成EXE文件后,如何对安全管理信息(如记录系统登录用户信息的数据库)和记录系统资料的数据库进行保护加密?

回答:

    关于这个问题,通常有三种做法:
    1.用asc(),chr() 等函数对字段内容做转换;
    2.用低级文件函数对库文件进行转换;
    3.不用库形式,而用文本文件形式记录信息.并用低级文件函数进行加密。
    第2,3种方法,原理一样,都需要用设计一个函数用来加密文件,一个函数用来解密文件.每次系统运行时先解密,修改内容保存后,运行加密函数。使用时不太方便.设计表单时,不直观。如果加密等级要求不高,宜用第一种方法。
    关于第一种方法举个例子:
    如要对密码字段进行加密,password M (4) (字段类型为备注型较好,定义成字符型也可以,但没有备注型灵活)。假设密码长度规定为8,内容为 1234xxxx (x表示空)
    lpassword='1234'+space(4)
    lpasswordlen=8
    mpassword=''
    for ln=1 to lpasswordlen
    
     mpassword=mpassword+chr(abs(asc(subs(lpassword,ln,1))+ln)-255))
    endfor
    ?mpassword
    
    加密形式可做许多复杂的变化,可考虑密码加密参照用户名,使同一密码不同用户密文也不同 。这种做法要注意的是,对密码为空或密码为同一字符的情况,密文不能有明显的规律。不管什么加密方法,只要解密者有机会使用软件,并有权设置密码,就能够通过设置有规律的密码,来比较明文和密文的差别,算出密钥。
    可考虑采用这种思路: 刚才密文的一个字节对应明文的一个字节,位置一一对应, 还可让明文的1,2,3,4,5,6,7,8字节,对应密文的8,23,1,34,56,3,7,9字节,密文的其它字节随机写入.或密文的对应字节位置是根据明文按某个算法算出,也可用几个字节对应明文的一个字节等等,用备注型的好处显而易见!
    另有一偏门的方法: 通常库文件的扩展名为 .dbf,可用其它扩展名,如 .arj .zip .aaa 之类,只要打开库时加扩展名就行。

此问题由何翊夫回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio