




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长沙学院 CHANGSHA UNIVERSITY毕业设计(论文)资料设计(论文)题目: ACCESS加密文件的解密工具的 开发研究 系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 班 级:05通信1 学号 指导教师姓名: 职称 高级工程师 最终评定成绩 长沙学院教务处 二七年十月制目 录第一部分 毕业论文一、毕业论文第二部分 外文资料翻译一、外文资料原文二、外文资料翻译第三部分 过程管理资料一、 毕业设计(论文)课题任务书二、 本科毕业设计(论文)开题报告三、 本科毕业设计(论文)中期报告四、 毕业设计(论文)指导教师评阅表五、 毕业设计(论文)评阅教师评阅表六、 毕业设计(论文)答辩评审表 2009届本科生毕业设计(论文)资料第一部分 毕业论文 (2009届)本科生毕业论文Access加密文件的解密工具的开发研究设计(论文)题目: ACCESS加密文件的解密工具的 开发研究 系部: 电子与通信工程系 专 业: 通信工程 学 生 姓 名: 班 级:05通信1 学号 指导教师姓名: 职称 高级工程师 最终评定成绩 2009年6月长沙学院本科生毕业论文Access加密文件的解密工具的开发研究系 (部):电子与通信工程系专 业: 通信工程 学 号: 学生姓名: 指导教师: 高级工程师 2009年6月 长沙学院毕业设计(论文) 摘 要计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。其中,信息安全的核心是密码技术。信息保密的理论基础是密码学,根据现代密码学理论,个好的加密算法的安全性只依赖于密钥,加密算法的公开与否不影响其安全性,现代密码学经过几十年研究和发展,已经发明了许多安全性很高的加密算法,并且被广泛地应用在各种信息安全产品中,其中数据加密技术是密码学的个重要应用领域,数据加密产品由于实现的思路方法和层次区别,决定了其应用领域和范围。信息安全问题涉及到国家安全、社会公共安全,世界各国已经认识到信息安全涉及重大国家利益,是互联网经济的制高点,也是推动互联网发展、电子政务和电子商务的关键,发展信息安全技术是目前面临的迫切要求,除了上述内容以外,网络与信息安全还涉及到其他很多方面的技术与知识,例如:黒客技术、防火墙技术、入侵检测技术、病毒防护技术、信息隐藏技术等。一个完善的信息安全保障系统,应该根据具体需求对上述安全技术进行取舍。 关键词:信息安全,密码技术,解密技术,加密研究ABSTRACT The confidentiality of computer information has become increasingly important, whether 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 information 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 of 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, determine 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 promote 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, 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, decryption, 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 合理处理数据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.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年(几个世纪了),虽然它不是现在我们所讲的加密技术(甚至不叫加密),但作为一种加密的概念,确实早在几个世纪前就诞生了。当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。1.1.1 加密技术的近期应用近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。1.1.2 加密技术在计算机上的应用随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。 但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就像“矛”与“盾”,网络与病毒、黑客永远是一对共存体。现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。但是加密技术在网络上的应用上却扮演着十分重要的角色。从而达到安全使用网络的目的,是一门在网络上不可缺少的技术。1.2 加密的概念数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的还是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件对于一个通常人来说是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户的服务器的人就是用户认为的那个人,身份认证技术就是一个好的解决方案。在这里需要强调一点的就是,文件加密其实不只用于电子邮件或网络上的文件传输,其实也可应用静态的文件保护,如PIP软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息1。1.2.1 加密的理由当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能黑客会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。这样的例子实在是太多了,解决上述难题的方案就是加密,加密后的口令即使被黑客获得也是不可读的,加密后的文件或者数据没有收件人的私钥也无法解开,文件和数据将成为一大堆无任何实际意义的乱码。总之无论是单位还是个人在某种意义上来说加密也成为当今网络社会进行文件或邮件安全传输的时代象征。1.2.2 加密的方法加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用加密技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DNS,Data Encryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Ad1eman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密2。第2章 加密技术的分类2.1 加密技术的分类加密技术通常分为两大类:“对称式”和“非对称式”。2.1.1 “对称式”加密技术对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DNS),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DNS的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。“对称式” 加密技术这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。2.1.2 “非对称式”加密技术1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。通俗的说非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题3。2.2 数据加密的标准最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的每轮密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强大的加密方法。随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。另一种非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”(Publickey),另一个不告诉任何人,称为私钥”(Privatekey)。这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了4。2.3 加密技术在VPN上的应用现在,越多越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的网络社会人们的要求不仅如此,用户希望将这些LAN连结在一起组成一个公司的广域网,这个在现在已不是什么难事了。事实上,很多公司都已经这样做了,但他们一般使用租用专用线路来连结这些局域网,他们考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Private Network ,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户端连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。第3章 数据库加密技术3.1 数据库加密的必要性目前,计算机大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。数据库系统作为计算机信息系统的核心部件,数据库文件作为信息的聚集体,其安全性将是信息产业的重中之重。3.2 数据库加密的基本要求一个良好的数据库加密系统应该满足的基本要求。字段加密,密匙动态管理,合理处理数据,不影响合法拥护的操作。3.2.1 字段加密 在目前条件下,加/脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。 3.2.2 密钥动态管理 数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。 3.2.3 合理处理数据 这包括几方面的内容。首先要恰当地处理数据类型,否则 DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。 3.2.4 不影响合法用户的操作 加密系统影响数据操作响应时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。3.3 不同层次实现数据库加密 我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS、DBMS内核层和DBMS外层。 在OS层,无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也无法进行合理的密钥管理和使用。所以,在OS层对数据库文件进行加密,对于大型数据库来说,目前还难以实现。 在DBMS内核层实现加密,是指数据在物理存取之前完成加/脱密工作。这种方式势必造成DBMS和加密器(硬件或软件)之间的接口需要DBMS 开发商的支持。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS 的功能。其缺点是在服务器端进行加/脱密运算,加重了数据库服务器的负载。 比较实际的做法是将数据库加密系统做成DBMS的一个外层工具。采用这种加密方式时,加/脱密运算可以放在客户端进行,其优点是不会加重数据库服务器的负载并可实现网上传输加密,缺点是加密功能会受一些限制。图中,“定义加密要求工具”模块的主要功能是定义如何对每个数据库表数据进行加密。在创建了一个数据库表后,通过这一工具对该表进行定义;“数据库应用系统”的功能是完成数据库定义和操作。数据库加密系统将根据加密要求自动完成对数据库数据的加/ 脱密5。3.4 数据库加密的安全措施数据库加密系统首先要解决系统本身的安全性和可靠性问题,在这方面,可以采用以下几项安全措施:在用户进入系统时进行两级安全控制,防止非法拷贝,安全的数据抽取方式。3.4.1 在用户进入系统时进行两级安全控制这种控制可以采用多种方式,包括设置数据库用户名和口令,或者利用IC卡读写器/指纹识别器进行用户身份认证。 3.4.2 防止非法拷贝 对于纯软件系统,可以采用软指纹技术防止非法拷贝,当然,如果每台客户机上都安装加密卡等硬部件,安全性会更好。此外,还应该保留数据库原有的安全措施,如权限控制、备份/恢复和审计控制等。 3.4.3 安全的数据抽取方式 提供两种卸出和装入数据库中加密数据的方式:其一是密文方式卸出,这种卸出方式不脱密,卸出的数据还是密文,在这种模式下,可直接使用 DBMS提供的卸出/装入工具;其二是明文方式卸出,这种卸出方式需要脱密,卸出的数据是明文,在这种模式下,可利用系统专用工具先进行数据转换,再使用DBMS提供的卸出/装入工具完成。3.5 数据库加密系统的结构数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/脱密引擎。 数据库加密系统将用户对数据库信息具体的加密要求记载在加密字典中,加密字典是数据库加密系统的基础信息。 加密字典管理程序,是管理加密字典的实用程序,是数据库管理员变更加密要求的工具。 加密字典管理程序通过数据库加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能,此时,它作为一个特殊客户来使用数据库加/脱密引擎。 数据库加/脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员是透明的。 按以上方式实现的数据库加密系统具有很多优点。首先,系统对数据库的最终用户完全透明,数据管理员可以指定需要加密的数据并根据需要进行明文/密文的转换工作;其次,系统完全独立于数据库应用系统,不需要改动数据库应用系统就能实现加密功能,同时系统采用了分组加密法和二级密钥管理,实现了“一次一密”;其三,系统在客户端进行数据加/脱密运算,不会影响数据库服务器的系统效率,数据加/脱密运算基本无延迟感觉。 数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息,因为所有的数据都经过了加密。另外,数据库加密以后,可以设定不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数据的安全性6。第4章 Access数据库加密技术4.1 Access数据库的安全性问题Access数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,成为许多中小型网上应用系统的首选数据库。Access数据库在为我们带来便捷的同时,也带来了不容忽视的安全问题。Access数据库的设置密码算法比较简单,很容易被破解。Access数据库的文件头中42H-4EH为密码区。设置密码时,根据所设密码的ASCII码与密码区的内容进行异或运算,最后将运算的结果存入密码区。 在Access数据库打开之后,数据库中的所有对象对用户都将是可用的。对于一些存储敏感数据的Access数据库,除了设置数据库密码外,应该对数据库中的数据进行加密。 由此可以看出,Access的安全性有待于进一步提高。4.2 Access数据库的加密技术Access 提供了设置数据库安全的几种传统方法:为打开的数据库设置密码,或设置用户级安全,以限制允许用户访问或更改数据库的哪一部分,以及加密数据库使用户无法通过工具程序或字处理程序查看和修改数据库中的敏感数据。除这些方法之外,还可将数据库保存为 MDE 文件以删除数据库中可编辑的 Visual Basic 代码以防止对窗体、报表和模块的设计进行修改。 (1)设置密码。最简单的方法是为打开的数据库设置密码。设置密码后,打开数据库时将显示要求输入密码的对话框。只有键入正确密码的用户才可以打开数据库。在数据库打开之后,数据库中的所有对象对用户都将是可用的。 (2)用户级安全。设置数据库安全的最灵活和最广泛的方法是设置用户级安全。这种安全类似于很多网络中使用的方法,它要求用户在启动Access 时确认自己的身份并键入密码。 (3)加密数据库。对数据库进行加密将压缩数据库文件,并使用户无法通过工具程序或字处理程序查看和修改数据库中的敏感数据7。4.3 对于Access97文件的研究Access97是一款比较老了的数据库软件了。对于Access97的密码破解,在很多的网站和杂志上都有过一些介绍。因此,对于才了解加密技术的我,决定先去了解Access97数据库的加密技术与解密方法。然后在对Access2000数据库进行研究。通过查找资料,终于了解了Access97数据库的加密方式,现在我在这里简单的重复一下。Access97的密匙是固定的13个字节,而且经过了解知道了Access97文件的密匙是存放在.mdb文件的第0x42字节处的13个相连的位置中,其13个字节分别为0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13。将这些位置的代码与上面的字节异或后即可得到数据库的密码。通过了解Access97数据库的加密技术和掌握的解密方法,我用这种方法对Access2000数据库也进行了同样的解密操作,想试着解开Access2000数据库的密码。可是发现上面的方法已经无法解开Access2000数据库的密码,由此可以知道,Access2000数据库的加密技术使用的是与Access97不同的加密方式。对于Access2000数据库到底有什么地方进行了改变,其加密技术是否有什么新的改进,我决定对Access2000进行一些研究。第5章Access2000数据库的研究5.1 Access2000数据库的研究对与Access2000数据库我使用的分析工具是UltraEdit32 v10.00,编程工具我使用的是VB6.0。选择使用VB进行编程是因为VB使用起来十分的简单,而且容易上手。5.1.1 创建一个空的Access2000文件首先我创建了一个空密码的Access2000数据库文件db1.mdb,包含一个表,并且不在文件中添加任何的数据,因此该文件中的每一个字段都是没有任何数据的。然后保存退出。创建这样的一个空文件,主要的目的就是为了用来作为一个对比的模板。而不在文件中添加内容,主要是为了避免在比较时出现太多不相同的地方,从而影响密码字段的判断。创建过程如图5.1,图5.2所示。图5.1 创建空文件图5.2 保存空文件5.1.2 创建一个带有密码的Access2000文件我将保存好的db1.mdb文件复制一份,命名为db2.mdb。这样做的目的主要是为了保证其中的数据与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中附带的比较程序,能够快速的将字节不同的地方显示出来。经过一翻对比,终于发现了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 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的加密方式来说,密码的保护性又有了一些提高。因为密码字节的不连续性,我们想要破解其密码便会被其中的无效字节给误导,从而无法得到想要的结果。并且由于密码字节的不连续性,Access97的破解密码的方式和工具便彻底的失去了效用。这种加密方式的改变,虽然只是改变了一小点,但却也印证了加密技术的不断进步。如果不了解的话,基本上是无法通过非暴力破解的方式去找到密码的。5.1.4 分析密码字节得出密码现在,我已经找到存放密码的字节了,接下来便是研究怎么样通过运算得到正确的密码。或者说接下来我主要的研究便是了解Access2000采用的何种加密技术。那么选择什么样的运算方式开始检验呢?虽然Access2000数据库和Access97数据库相比,加密字节有了不同,但或许它们采用的仍然是相同的运算方式。因此我决定先参考Access97的运算方法,运用“异或”来对加密字节进行计算。我将第一个不同的字节提取出来,即0xAC,然后让其和未加密前的密码字节的数字,即0xAC,进行异或运算。 0x9D0xAC=0x31,结果是0x31,而0x31这正好对应的是Ascii码中的“1”,我设置的密码为1234567890123,这结果与我设置的密码的第一位是一样的,这让我心中十分的激动,看来在Access2000中虽然密码的存放字节有了改变,但对于密码的加密仍然采用的是Access97的异或运算方式。当然,这还需要我进行更多的尝试才能确定。我怀着激动的心情继续对下一个字节进行计算,0xEC0xDE=0x32,而这正好就是Ascii码中的“2”,这个结果又和我所设置的密码是一样的,看来加密的方式应该就是通过异或运算来进行的了。当然虽然2个密码已经出来了,但或许只是运气好而已,只有当检验完所有的字节得出的密码与我所设置的密码一样时,才能说是完全的成功。因此我把后面的都一一的进行了运算,一直到最后一个0x6C0x5F=0x33,最后一个对应的是Ascii码中的“3”。我将获得的Ascii码字符合成字符串,其密码明为“1234567890123”。看来结果已经很清楚了,Access2000虽然将加密的字段有了一定的调整,但是在运算方式上却并没有改变。不过上面的研究只是对于纯数字的密码来研究的,那么对于字母来说,Access2000数据库存放密码的字段是否有不同,加密方式是否不同还需要进一步的研究。5.1.5 深入分析Access2000的加密技术由于上面的密码都是由数字组成,因此有一定的片面性。因为对于密码的组成来说,基本上不可能都是由纯数字组成的。因此我还必须检验数字加上字母,还有常见的一些符号所设置的密码,看看通过上面的研究所采用的解密方式是否同样适用于字母和符号,看看得到的结果是否依然正确。当然我采用的是同样的方式来进行研究。我将db1.mdb文件复制一份命名为db3.mdb文件。然后,用独占的方式打开,并为其设置密码,密码为我的名字的拼音加上我的学号ycchao.02。接下来便是同样的运用UltraEdit32中的程序将db3.mdb文件与db1.mdb文件进行比较。比较的结果如图5.6所示:图5.6 对比结果现在我再次将字节不同的地方提取出来: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 E4 67 99 37 25 D8 F4 FA BC C2 47 E6 26 2A;00000050h: BA 60 7D 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;为了方便看清楚,我仍然将不同的地方加粗给表现了出来。现在开始计算结果,同样的我将0x9D与0xE4进行异或运算,结果为0x79,而0x79正是Ascii码中的“y”。看来上面对于数字所采用的加密运算方式同样适用与字母。接下来我又计算了下一组数据,我将0xEC与0x99进行异或运算,得到的结果为0x75,而0x75正是Ascii码中的“u”,看来应该是正确的了。当然我仍然一一的进行了计算,到了“.”这个符号了,这是十分关键的地方,因为数字和字母我都已经检验过了,结果是正确的,只要“.”符号也正确,那么Access2000的加密方式便出来了。0x08异或0x26,结果为0x2E,结果也是正确的。最后将所有的计算结果和起来为“yuchao.02”,而这运算出来的密码明码和我设置的密码是一样的。看来Access2000采用的就是异或运算对密码加密的了。5.2 Access解密工具的开发研究由于对Access2000数据库加密技术已经知道了,接下来我想要开发一个破解软件来做进一步的验证。当然因为知道了Access2000数据库加密的方式,开发一个小的破解软件就变的就比较简单了。当然,最主要的还是Access2000数据库的加密方式并不复杂,只是十分简单的异或运算,这种一次运算便能达到解密效果的运算使得对于编程的难度也有了下降。5.2.1 解密工具的窗体布局首先,我在窗体中添加了2个Command命令按钮,在Command1的Caption属性中输入“破解密码”,在Command2的Caption属性中输入“选择”。然后,我继续在窗体中添加3个Text文本框按钮,按顺序Text1,Text2,Text3顺序排列(文本中的1,2,3只是提示,实际上是没有的),最后,我们还需要3个Label标题栏,按照上图分别输入“路径”,“版本”和“密码”。这样我所需要的窗体便已经飞快的完成了。现在,就只需要加入源代码了。下面是我窗体的布局,如图5.7所示:图5.7 窗体布局5.2.2 部分源代码及其含义下面是Command2中的源代码以及一些代码的解释:这是Command2中单击事件的代码:Private Sub Command2_Click()Text1.Text = GetFileName(True) 得到文件的路径End Sub当然Command2中的语句是很简单的,这些代码主要只是提出Command2按钮的作用,但要真正完成文件的选择与打开,还需要添加模块内容,其代码如下:Public Function GetFileName(ByVal fbOpen As Boolean, _Optional fsFilter As String = Acess文件 (*.mdb)| *.mdb|所有文件 (*.*)| *.*, _Optional ByVal fsDefaultExt As String, _Optional ByVal fsDefFile As String, _Optional ByVal fsDialogTitle As String, _Optional ByVa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年统计学期末考试:基于统计数据可视化的实践试题
- 2025年消防执业资格考试题库:消防设施检测与维护设备操作规程试题
- 2025合同履行争议解决实务
- 2025年护士考试:妇产科护理学专项护理安全管理试题
- 2025年高压电工基础理论考试题库:考点与练习
- 2025年营养师基础知识考核试卷:营养学基础理论专项练习试题
- 2025年高压电工基础理论考试题库与实战试题卷
- 社会工作者初级考试2025年综合能力试题(社会工作咨询)
- 2025年咖啡师职业技能测试卷:咖啡师饮品品牌故事与历史试题
- 2025年家居用品展位租赁合同范本
- 航空货物运输管理操作手册
- DB3502T 141-2024城市道路开口设置指引
- 混凝土搅拌站扬尘管理制度
- 行政管理毕业论文-我国地方政府行政机构改革问题研究
- 静配中心医用耗材管理制度
- 湖南信息职业技术学院2025年单独招生考试职业技能测试D组考试大纲(应届普通高中毕业考生、退役军人)
- 2025年时政真题面试题及答案
- AI基础知识培训
- 2024年秋季新苏教版一年级上册数学全册教案
- GB/T 18936-2025禽流感诊断技术
- 《危化品储罐设计与制备技术规范》
评论
0/150
提交评论