ACCESS数据库的几种加密 微软的ACCESS数据库使用方便,http://www.shengfang.org使用VB进行开发也非常便捷,但是作为保存资料的数据库,一般需要进行一定的加密措施,以免用户使用ACCESS打开数据库自行修改重要数据。经过一段时间的开发,总结了几种加密方法。 一、 数据库加密码 这个是VB程序员最经常使用的了,http://www.shengfang.org用ACCESS设置一个密码,然后在连接字符串后加上PWD,例如: ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "sf.mdb" + ";Jet OLEDB:Database Password=mypwd" 二、 MDW文件权限设置 我们可以通过ACCESS设置安全机制http://www.shengfang.org对MDB数据库设置组帐户及其密码,由于ACCESS的帮助非常详尽,就不多做说明,一般都会限制通用ADMIN帐户的权限而另外生成一个完全权限组的帐户。 连接字符串示例: ADO_CON = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + "sf.mdb" + ";Jet OLEDB:" + "System database=" + "Secured.mdw" + ";User ID=sf;Password=sf;" 但是道高一尺,魔高一丈,http://www.shengfang.org现在网上工具繁多,很容易就能找到破解MDB数据库密码以及用户组密码的工具,所以虽然上述两种加密方法方便简单,但是安全性还是欠缺。 三、 十六进制加密 这是将MDB数据库视为一个十六进制文件,http://www.shengfang.org用程序修改部分字符,让用户无法使用ACCESS等工具打开查看,程序运行后先解密再建立连接。 非常简单的加密示例如下: Dim EncryptString As Byte EncryptString(1) = 11 Open FilePath For Binary Access Write As #1 Put #1, 1, EncryptString Close #1 当然更复杂的方法可以不从第一个开始修改,http://www.shengfang.org或者采用读取原值经过加密算法换算等。但是这个方法有两个缺陷,程序打开数据库后,数据库就已经是解密的了。所以必须在建立连接后重新进行加密。还有就是加密的部分只能在MDB文件的头部一带,不能在数据区,不然操作数据库后有问题。 注:网上有种方法是使用DELPHI将加密后的数据库先备份,http://www.shengfang.org解密后进行连接,然后再将加密数据库拷贝回来。该方法认为因为数据库打开后再对MDB进行直接的写入会出现问题,而且你无法去确定多少个用户打开了程序。这种方法在WIN2000下可行,而在WIN98下会出错。而本人在WIN2000/WIN98、ACCESS2000、VB6环境下测试可以在打开连接的情况下写文件进行加密。请大家参考。 http://www.shengfang.org 字体:大 中 小 |