首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读4566次
ACCESS数据库的几种加密

     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


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/vbaccessdec.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1111841291

2005年3月26日20:48星期六  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 5||用户: 2563 [列表]
今日:691||到访:2682330
Rss:841978||评论:1585

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8