1、长沙学院 CHANGSHA UNIVERSITY毕业设计(论文)资料设计(论文)题目: ACCESS加密文件的解密工具的 开发研究 系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 喻超 班 级:05通信1 学号 2005043102 指导教师姓名: 张明 职称 高级工程师 最终评定成绩 长沙学院教务处 二七年十月制目 录第一部分 毕业论文一、毕业论文第二部分 外文资料翻译一、外文资料原文二、外文资料翻译第三部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文
2、)评阅教师评阅表六、 毕业设计(论文)答辩评审表 2009届本科生毕业设计(论文)资料第一部分 毕业论文 (2009届)本科生毕业论文Access加密文件的解密工具的开发研究设计(论文)题目: ACCESS加密文件的解密工具的 开发研究 系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 喻超 班 级:05通信1 学号 2005043102 指导教师姓名: 张明 职称 高级工程师 最终评定成绩 2009年6月长沙学院本科生毕业论文Access加密文件的解密工具的开发研究系 (部):电子与通信工程系专 业: 通信工程 学 号: 2005043102 学生姓名: 喻超 指导教师: 张明
3、 高级工程师 2009年6月 长沙学院毕业设计(论文) 摘 要计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。其中,信息安全的核心是密码技术。信息保密的理论基础是密码学,根据现代密码学理论,个好的加密算法的安全性只依赖于密钥,加密算法的公开与否不影响其安全性,现代密码学经过几十年研究和发展,已经发明了许多安全性很高的加密算法,并且被广泛地应用在各种信息安全产品中,其中数据加密技术是密码学的个重要应用领域,数据加密产品由于实现的思路方法和层次区别,决定了其应用领域和范围。信息安全问题涉及到国家安全、社会公
4、共安全,世界各国已经认识到信息安全涉及重大国家利益,是互联网经济的制高点,也是推动互联网发展、电子政务和电子商务的关键,发展信息安全技术是目前面临的迫切要求,除了上述内容以外,网络与信息安全还涉及到其他很多方面的技术与知识,例如:黒客技术、防火墙技术、入侵检测技术、病毒防护技术、信息隐藏技术等。一个完善的信息安全保障系统,应该根据具体需求对上述安全技术进行取舍。 关键词:信息安全,密码技术,解密技术,加密研究ABSTRACT The confidentiality of computer information has become increasingly important, whethe
5、r individuals or the development of electronic commerce in information and communication are urgently needed to ensure that information transmitted over the Internet security, the need to ensure information security. Which is the core of information security and cryptography? Confidentiality of info
6、rmation theory is based on cryptography, the basis of modern cryptography theory, a good encryption algorithm only relies on the safety key, encryption algorithm does not affect the open and not their safety, modern cryptography after decades of research and development, has been invented a number o
7、f high security encryption algorithm and has been widely used in a variety of information security products, including data encryption technology is the key cryptography applications, data encryption products as a result of the realization of the difference between the level of methods and ideas, de
8、termine its applications and scope. Information security issues related to national security, social public security, countries around the world have come to understand that information security and vital national interests involved, is the commanding height of the Internet economy, but also to prom
9、ote the development of the Internet, e-government and e-commerce the key to the development of information security technology is currently facing an urgent need, in addition to the above-mentioned content, network and information security also involves many other areas of technology and knowledge,
10、such as: Black-off technology, firewall technology, intrusion detection technology, anti-virus technology, information hiding technology. A sound information security system should be based on the specific needs of these security technologies to choose.Keywords: information security, cryptography, d
11、ecryption, encryption research目 录摘 要IABSTRACTII第1章 加密技术的应用11.1 加密技术的由来11.1.1 加密技术的近期应用11.1.2 加密技术在计算机上的应用11.2 加密的概念21.2.1 加密的理由21.2.2 加密的方法3第2章 加密技术的分类42.1 加密技术的分类42.1.1 “对称式”加密技术42.1.2 “非对称式” 加密技术42.2 数据加密的标准52.3 加密技术在VPN上的应用5第3章 数据库加密技术73.1 数据库加密的必要性73.2 数据库加密的基本要求73.2.1 字段加密73.2.2 密钥动态管理73.2.3 合理
12、处理数据73.2.4 不影响合法用户的操作83.3 不同层次实现数据库加密83.4 数据库加密的安全措施83.4.1 在用户进入系统时进行两级安全控制83.4.2 防止非法拷贝93.4.3 安全的数据抽取方式93.5 数据库加密系统的结构9第4章 Access数据库加密技术104.1 Access数据库的安全性问题104.2 Access数据库的加密技术104.3 对于Access97文件的研究11第5章Access2000数据库的研究125.1 Access2000数据库的研究125.1.1 创建一个空的Access2000文件125.1.2 创建一个带有密码的Access2000文件135
13、.1.3 对比文件155.1.4 分析密码字节得出密码165.1.5 深入分析Access2000的加密技术175.2 Access解密工具的开发研究185.2.1 解密工具的窗体布局185.2.2 部分源代码及其含义19第6章 Access数据库加密技术的改进266.1 Access数据库现有的改进方法266.2 Access数据库改进设想26结 论28参考文献29致 谢30IV 长沙学院毕业设计(论文) 第1章 加密技术的应用1.1 加密技术的由来加密作为保障数据安全的一种方式,它不是现在才有的,它产生的历史相当久远,它是起源于要追溯于公元前2000年(几个世纪了),虽然它不是现在我们所讲
14、的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。1.1.1 加密技术的近期应用近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计
15、算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。1.1.2 加密技术在计算机上的应用随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。 但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,
16、目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就像“矛”与“盾”,网络与病毒、黑客永远是一对共存体。现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。但是加密技术在网络上的应用上却扮演着十分重要的角色。从而达到安全使用网络的目的,是一门在网络上不可缺少的技术。1.2 加密的概念数据加密的基本过程就是
17、对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地
18、址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。在这里需要强调一点的就是
19、,文件加密其实不只用于电子邮件或网络上的文件传输,其实也可应用静态的文件保护,如PIP软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息1。1.2.1 加密的理由当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这
20、一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加
21、密后的文件或者数据没有收件人的私钥也无法解开,文件和数据将成为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为当今网络社会进行文件或邮件安全传输的时代象征。1.2.2 加密的方法加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用加密技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息
22、通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DNS,Data Encryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Ad1eman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密2。第2章 加密技术的分类2.1 加密技术的分类加密技术通常分为两大类:“对称式”和“非对称式”。2.1.1 “对称式”加密技术对称加密采用了对称密码编码技
23、术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DNS),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DNS的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。“对称式” 加密技术这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。2.1.2 “非对称式”加密技术1976年,美国学者Dime和He
24、nman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。通俗的说非对称式加密就是加密和解密所使用的不是同一个密钥,
25、通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题3。2.2 数据加密的标准最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政
26、府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的每轮密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强大的加
27、密方法。随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Publickey),另一个不告诉任何人,称为私钥”(Privatekey)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥
28、解密,反过来也一样。假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公
29、钥解密签名,这样一来就可以确保两方面的安全了4。2.3 加密技术在VPN上的应用现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的网络社会人们的要求不仅如此,用户希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网,他们考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Priva
30、te Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户端连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。第3章 数据库加密技术3.1 数据库加密的必要性目前,计算机大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。数据库系统作为计算机信息系统的核心部件,数据库文件作为信息的聚集体,其安全性将是信息产业的重中之重。3.2 数据库加密的基本要求一个良好的数据库加密系统应该满足的基本要求。字段加密,密匙动态管理,合理处理数
31、据,不影响合法拥护的操作。3.2.1 字段加密 在目前条件下,加/脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。 3.2.2 密钥动态管理 数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。 3.2.3 合理处理数据 这包括几方面的内容。首先要恰当地处理数据类型,否则 DBMS将会
32、因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。 3.2.4 不影响合法用户的操作 加密系统影响数据操作响应时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。3.3 不同层次实现数据库加密 我们可以考虑在三个不同层次实现对数据库数据的加密
33、,这三个层次分别是OS、DBMS内核层和DBMS外层。 在OS层,无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也无法进行合理的密钥管理和使用。所以,在OS层对数据库文件进行加密,对于大型数据库来说,目前还难以实现。 在DBMS内核层实现加密,是指数据在物理存取之前完成加/脱密工作。这种方式势必造成DBMS和加密器(硬件或软件)之间的接口需要DBMS 开发商的支持。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS 的功能。其缺点是在服务器端进行加/脱密运算,加重了数据库服务器的负载。 比较实际的做法是将数据库加密系统做成DBMS的一个外层工具。采用这种加密方式时,加/
34、脱密运算可以放在客户端进行,其优点是不会加重数据库服务器的负载并可实现网上传输加密,缺点是加密功能会受一些限制。图中,“定义加密要求工具”模块的主要功能是定义如何对每个数据库表数据进行加密。在创建了一个数据库表后,通过这一工具对该表进行定义;“数据库应用系统”的功能是完成数据库定义和操作。数据库加密系统将根据加密要求自动完成对数据库数据的加/ 脱密5。3.4 数据库加密的安全措施数据库加密系统首先要解决系统本身的安全性和可靠性问题,在这方面,可以采用以下几项安全措施:在用户进入系统时进行两级安全控制,防止非法拷贝,安全的数据抽取方式。3.4.1 在用户进入系统时进行两级安全控制这种控制可以采用
35、多种方式,包括设置数据库用户名和口令,或者利用IC卡读写器/指纹识别器进行用户身份认证。 3.4.2 防止非法拷贝 对于纯软件系统,可以采用软指纹技术防止非法拷贝,当然,如果每台客户机上都安装加密卡等硬部件,安全性会更好。此外,还应该保留数据库原有的安全措施,如权限控制、备份/恢复和审计控制等。 3.4.3 安全的数据抽取方式 提供两种卸出和装入数据库中加密数据的方式:其一是密文方式卸出,这种卸出方式不脱密,卸出的数据还是密文,在这种模式下,可直接使用 DBMS提供的卸出/装入工具;其二是明文方式卸出,这种卸出方式需要脱密,卸出的数据是明文,在这种模式下,可利用系统专用工具先进行数据转换,再使
36、用DBMS提供的卸出/装入工具完成。3.5 数据库加密系统的结构数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/脱密引擎。 数据库加密系统将用户对数据库信息具体的加密要求记载在加密字典中,加密字典是数据库加密系统的基础信息。 加密字典管理程序,是管理加密字典的实用程序,是数据库管理员变更加密要求的工具。 加密字典管理程序通过数据库加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能,此时,它作为一个特殊客户来使用数据库加/脱密引擎。 数据库加/脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员是透明的。 按
37、以上方式实现的数据库加密系统具有很多优点。首先,系统对数据库的最终用户完全透明,数据管理员可以指定需要加密的数据并根据需要进行明文/密文的转换工作;其次,系统完全独立于数据库应用系统,不需要改动数据库应用系统就能实现加密功能,同时系统采用了分组加密法和二级密钥管理,实现了“一次一密”;其三,系统在客户端进行数据加/脱密运算,不会影响数据库服务器的系统效率,数据加/脱密运算基本无延迟感觉。 数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息,因为所有的数据都经过了加密。另外,数据库加密以后,可以设定不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数
38、据的安全性6。第4章 Access数据库加密技术4.1 Access数据库的安全性问题Access数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,成为许多中小型网上应用系统的首选数据库。Access数据库在为我们带来便捷的同时,也带来了不容忽视的安全问题。Access数据库的设置密码算法比较简单,很容易被破解。Access数据库的文件头中42H-4EH为密码区。设置密码时,根据所设密码的ASCII码与密码区的内容进行异或运算,最后将运算的结果存入密码区。 在Access数据库打开之后,数据库中的所有对象对用户都将是可用的。对于一些存储敏感数据的Acc
39、ess数据库,除了设置数据库密码外,应该对数据库中的数据进行加密。 由此可以看出,Access的安全性有待于进一步提高。4.2 Access数据库的加密技术Access 提供了设置数据库安全的几种传统方法:为打开的数据库设置密码,或设置用户级安全,以限制允许用户访问或更改数据库的哪一部分,以及加密数据库使用户无法通过工具程序或字处理程序查看和修改数据库中的敏感数据。除这些方法之外,还可将数据库保存为 MDE 文件以删除数据库中可编辑的 Visual Basic 代码以防止对窗体、报表和模块的设计进行修改。 (1)设置密码。最简单的方法是为打开的数据库设置密码。设置密码后,打开数据库时将显示要求
40、输入密码的对话框。只有键入正确密码的用户才可以打开数据库。在数据库打开之后,数据库中的所有对象对用户都将是可用的。 (2)用户级安全。设置数据库安全的最灵活和最广泛的方法是设置用户级安全。这种安全类似于很多网络中使用的方法,它要求用户在启动Access 时确认自己的身份并键入密码。 (3)加密数据库。对数据库进行加密将压缩数据库文件,并使用户无法通过工具程序或字处理程序查看和修改数据库中的敏感数据7。4.3 对于Access97文件的研究Access97是一款比较老了的数据库软件了。对于Access97的密码破解,在很多的网站和杂志上都有过一些介绍。因此,对于才了解加密技术的我,决定先去了解A
41、ccess97数据库的加密技术与解密方法。然后在对Access2000数据库进行研究。通过查找资料,终于了解了Access97数据库的加密方式,现在我在这里简单的重复一下。Access97的密匙是固定的13个字节,而且经过了解知道了Access97文件的密匙是存放在.mdb文件的第0x42字节处的13个相连的位置中,其13个字节分别为0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13。将这些位置的代码与上面的字节异或后即可得到数据库的密码。通过了解Access97数据库的加密技术和掌握的解密方法,我用这种方法对Acc
42、ess2000数据库也进行了同样的解密操作,想试着解开Access2000数据库的密码。可是发现上面的方法已经无法解开Access2000数据库的密码,由此可以知道,Access2000数据库的加密技术使用的是与Access97不同的加密方式。对于Access2000数据库到底有什么地方进行了改变,其加密技术是否有什么新的改进,我决定对Access2000进行一些研究。第5章Access2000数据库的研究5.1 Access2000数据库的研究对与Access2000数据库我使用的分析工具是UltraEdit32 v10.00,编程工具我使用的是VB6.0。选择使用VB进行编程是因为VB使用
43、起来十分的简单,而且容易上手。5.1.1 创建一个空的Access2000文件首先我创建了一个空密码的Access2000数据库文件db1.mdb,包含一个表,并且不在文件中添加任何的数据,因此该文件中的每一个字段都是没有任何数据的。然后保存退出。创建这样的一个空文件,主要的目的就是为了用来作为一个对比的模板。而不在文件中添加内容,主要是为了避免在比较时出现太多不相同的地方,从而影响密码字段的判断。创建过程如图5.1,图5.2所示。图5.1 创建空文件图5.2 保存空文件5.1.2 创建一个带有密码的Access2000文件我将保存好的db1.mdb文件复制一份,命名为db2.mdb。这样做的
44、目的主要是为了保证其中的数据与db1.mdb文件是完全一致的。然后,我用独占的方式打开db2.mdb文件,如图5.3所示。只有使用独占方式打开,才能对db2.mdb文件进行加密。我对db2.mdb文件加上密码1234567890123,如图5.4所示。保存后,退出。图5.3 以独占方式打开文件图5.4 设置文件密码5.1.3 对比文件现在准备工作就已经完成了,接下来主要是使用UltraEdit32 v10.00程序打开db1.mdb和db2.mdb这2个文件,并且对db1.mdb和db2.mdb这2个文件的各个字节进行对比,查出哪一些字节处发生了变化。我使用的是UltraEdit32中附带的比
45、较程序,能够快速的将字节不同的地方显示出来。经过一翻对比,终于发现了2个文件中不同的地方,如图5.5所示:图5.5 对比结果现在我将字节不同的地方提取出来:db1.mdb:00000040h: BC 4E 9D 67 EC 37 46 D8 9C FA DD C2 28 E6 08 2A;00000050h: 8A 60 4F 08 7B 36 EE EE DF B1 6C 68 13 43 D4 33;00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0 7C 99 05 13;db2.mdb:00000040h: BC 4E AC 67 DE 37
46、75 D8 A8 FA E8 C2 1E E6 3F 2A;00000050h: B2 60 76 08 4B 36 DF EE ED B1 5F 68 13 43 D4 33;00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0 7C 99 05 13;为了方便看清楚,我将不同的地方加粗给表现了出来。由于了解了Access97的加密方式,便可以发现Access2000加密的方式不再像Access97一样连续的存放在密码字节里面,而是选择了隔一个字节存放一个密码。Access2000采用的加密方式对于Access97的加密方式来说,密码的保护性又有了一些提高。因为密码字节的不连续性,我们想要破解其密码便会被其中的无效字节给误导,从而无法得到想要的结果。并且由于密码字节的不连续性