版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)論文</b></p><p> Access加密文件的解密工具的開發(fā)研究</p><p> 系 (部):電子與通信工程系</p><p> 專 業(yè): 通信工程 </p><p> 學(xué) 號(hào): </p>&
2、lt;p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: 高級(jí)工程師</p><p><b> 2009年6月</b></p><p><b> 摘 要</b></p><p> 計(jì)算機(jī)信息的保密問題顯得越來越重要,無論是個(gè)人信息通信還是電子商務(wù)發(fā)展,都迫切需
3、要保證Internet網(wǎng)上信息傳輸?shù)陌踩枰WC信息安全。其中,信息安全的核心是密碼技術(shù)。信息保密的理論基礎(chǔ)是密碼學(xué),根據(jù)現(xiàn)代密碼學(xué)理論,個(gè)好的加密算法的安全性只依賴于密鑰,加密算法的公開與否不影響其安全性,現(xiàn)代密碼學(xué)經(jīng)過幾十年研究和發(fā)展,已經(jīng)發(fā)明了許多安全性很高的加密算法,并且被廣泛地應(yīng)用在各種信息安全產(chǎn)品中,其中數(shù)據(jù)加密技術(shù)是密碼學(xué)的個(gè)重要應(yīng)用領(lǐng)域,數(shù)據(jù)加密產(chǎn)品由于實(shí)現(xiàn)的思路方法和層次區(qū)別,決定了其應(yīng)用領(lǐng)域和范圍。</p&g
4、t;<p> 信息安全問題涉及到國家安全、社會(huì)公共安全,世界各國已經(jīng)認(rèn)識(shí)到信息安全涉及重大國家利益,是互聯(lián)網(wǎng)經(jīng)濟(jì)的制高點(diǎn),也是推動(dòng)互聯(lián)網(wǎng)發(fā)展、電子政務(wù)和電子商務(wù)的關(guān)鍵,發(fā)展信息安全技術(shù)是目前面臨的迫切要求,除了上述內(nèi)容以外,網(wǎng)絡(luò)與信息安全還涉及到其他很多方面的技術(shù)與知識(shí),例如:黒客技術(shù)、防火墻技術(shù)、入侵檢測(cè)技術(shù)、病毒防護(hù)技術(shù)、信息隱藏技術(shù)等。一個(gè)完善的信息安全保障系統(tǒng),應(yīng)該根據(jù)具體需求對(duì)上述安全技術(shù)進(jìn)行取舍。 <
5、/p><p> 關(guān)鍵詞:信息安全,密碼技術(shù),解密技術(shù),加密研究</p><p><b> ABSTRACT</b></p><p> The confidentiality of computer information has become increasingly important, whether individuals or the
6、 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 in
7、formation security and cryptography? Confidentiality of information theory is based on cryptography, the basis of modern cryptography theory, a good encryption algorithm only </p><p> Information security i
8、ssues 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 eco
9、nomy, 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
10、content, network and information secur</p><p> Keywords: information security, cryptography, decryption, encryption research</p><p><b> 目 錄</b></p><p> 摘 要- 1 -<
11、;/p><p> ABSTRACT- 2 -</p><p> 第1章 加密技術(shù)的應(yīng)用1</p><p> 1.1 加密技術(shù)的由來1</p><p> 1.1.1 加密技術(shù)的近期應(yīng)用1</p><p> 1.1.2 加密技術(shù)在計(jì)算機(jī)上的應(yīng)用1</p><p> 1.2 加密的概
12、念2</p><p> 1.2.1 加密的理由2</p><p> 1.2.2 加密的方法3</p><p> 第2章 加密技術(shù)的分類4</p><p> 2.1 加密技術(shù)的分類4</p><p> 2.1.1 “對(duì)稱式”加密技術(shù)4</p><p> 2.1.2 “非對(duì)
13、稱式” 加密技術(shù)4</p><p> 2.2 數(shù)據(jù)加密的標(biāo)準(zhǔn)5</p><p> 2.3 加密技術(shù)在VPN上的應(yīng)用5</p><p> 第3章 數(shù)據(jù)庫加密技術(shù)7</p><p> 3.1 數(shù)據(jù)庫加密的必要性7</p><p> 3.2 數(shù)據(jù)庫加密的基本要求7</p><p>
14、; 3.2.1 字段加密7</p><p> 3.2.2 密鑰動(dòng)態(tài)管理7</p><p> 3.2.3 合理處理數(shù)據(jù)7</p><p> 3.2.4 不影響合法用戶的操作8</p><p> 3.3 不同層次實(shí)現(xiàn)數(shù)據(jù)庫加密8</p><p> 3.4 數(shù)據(jù)庫加密的安全措施8</p>
15、<p> 3.4.1 在用戶進(jìn)入系統(tǒng)時(shí)進(jìn)行兩級(jí)安全控制8</p><p> 3.4.2 防止非法拷貝9</p><p> 3.4.3 安全的數(shù)據(jù)抽取方式9</p><p> 3.5 數(shù)據(jù)庫加密系統(tǒng)的結(jié)構(gòu)9</p><p> 第4章 Access數(shù)據(jù)庫加密技術(shù)10</p><p> 4.
16、1 Access數(shù)據(jù)庫的安全性問題10</p><p> 4.2 Access數(shù)據(jù)庫的加密技術(shù)10</p><p> 4.3 對(duì)于Access97文件的研究11</p><p> 第5章Access2000數(shù)據(jù)庫的研究12</p><p> 5.1 Access2000數(shù)據(jù)庫的研究12</p><p>
17、; 5.1.1 創(chuàng)建一個(gè)空的Access2000文件12</p><p> 5.1.2 創(chuàng)建一個(gè)帶有密碼的Access2000文件13</p><p> 5.1.3 對(duì)比文件15</p><p> 5.1.4 分析密碼字節(jié)得出密碼16</p><p> 5.1.5 深入分析Access2000的加密技術(shù)17</p&g
18、t;<p> 5.2 Access解密工具的開發(fā)研究18</p><p> 5.2.1 解密工具的窗體布局18</p><p> 5.2.2 部分源代碼及其含義19</p><p> 第6章 Access數(shù)據(jù)庫加密技術(shù)的改進(jìn)26</p><p> 6.1 Access數(shù)據(jù)庫現(xiàn)有的改進(jìn)方法26</p>
19、;<p> 6.2 Access數(shù)據(jù)庫改進(jìn)設(shè)想26</p><p><b> 結(jié) 論28</b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 致 謝30</b></p><p> 第1章 加密技術(shù)的應(yīng)用</
20、p><p> 1.1 加密技術(shù)的由來</p><p> 加密作為保障數(shù)據(jù)安全的一種方式,它不是現(xiàn)在才有的,它產(chǎn)生的歷史相當(dāng)久遠(yuǎn),它是起源于要追溯于公元前2000年(幾個(gè)世紀(jì)了),雖然它不是現(xiàn)在我們所講的加密技術(shù)(甚至不叫加密),但作為一種加密的概念,確實(shí)早在幾個(gè)世紀(jì)前就誕生了。當(dāng)時(shí)埃及人是最先使用特別的象形文字作為信息編碼的,隨著時(shí)間推移,巴比倫、美索不達(dá)米亞和希臘文明都開始使用一些方法來
21、保護(hù)他們的書面信息。</p><p> 1.1.1 加密技術(shù)的近期應(yīng)用</p><p> 近期加密技術(shù)主要應(yīng)用于軍事領(lǐng)域,如美國獨(dú)立戰(zhàn)爭(zhēng)、美國內(nèi)戰(zhàn)和兩次世界大戰(zhàn)。最廣為人知的編碼機(jī)器是German Enigma機(jī),在第二次世界大戰(zhàn)中德國人利用它創(chuàng)建了加密信息。此后,由于Alan Turing和Ultra計(jì)劃以及其他人的努力,終于對(duì)德國人的密碼進(jìn)行了破解。當(dāng)初,計(jì)算機(jī)的研究就是為了破解德
22、國人的密碼,人們并沒有想到計(jì)算機(jī)給今天帶來的信息革命。隨著計(jì)算機(jī)的發(fā)展,運(yùn)算能力的增強(qiáng),過去的密碼都變得十分簡(jiǎn)單了,于是人們又不斷地研究出了新的數(shù)據(jù)加密方式,如利用ROSA算法產(chǎn)生的私鑰和公鑰就是在這個(gè)基礎(chǔ)上產(chǎn)生的。</p><p> 1.1.2 加密技術(shù)在計(jì)算機(jī)上的應(yīng)用</p><p> 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全也就成為當(dāng)今網(wǎng)絡(luò)社會(huì)的焦點(diǎn)中的焦點(diǎn),幾乎沒有人不在談?wù)摼W(wǎng)絡(luò)上的安全問
23、題,病毒、黑客程序、郵件炸彈、遠(yuǎn)程偵聽等這一切都無不讓人膽戰(zhàn)心驚。病毒、黑客的猖獗使身處今日網(wǎng)絡(luò)社會(huì)的人們感覺到談網(wǎng)色變,無所適從。 </p><p> 但我們必需清楚地認(rèn)識(shí)到,這一切一切的安全問題我們不可一下全部找到解決方案,況且有的是根本無法找到徹底的解決方案,如病毒程序,因?yàn)槿魏畏床《境绦蚨贾荒茉谛虏《景l(fā)現(xiàn)之后才能開發(fā)出來,目前還沒有哪能一家反病毒軟件開發(fā)商敢承諾他們的軟件能查殺所有已知的和未知的病毒,所
24、以我們不能有等網(wǎng)絡(luò)安全了再上網(wǎng)的念頭,因?yàn)榛蛟S網(wǎng)絡(luò)不能有這么一日,就像“矛”與“盾”,網(wǎng)絡(luò)與病毒、黑客永遠(yuǎn)是一對(duì)共存體。</p><p> 現(xiàn)代的電腦加密技術(shù)就是適應(yīng)了網(wǎng)絡(luò)安全的需要而應(yīng)運(yùn)產(chǎn)生的,它為我們進(jìn)行一般的電子商務(wù)活動(dòng)提供了安全保障,如在網(wǎng)絡(luò)中進(jìn)行文件傳輸、電子郵件往來和進(jìn)行合同文本的簽署等。其實(shí)加密技術(shù)也不是什么新生事物,只不過應(yīng)用在當(dāng)今電子商務(wù)、電腦網(wǎng)絡(luò)中還是近幾年的歷史。但是加密技術(shù)在網(wǎng)絡(luò)上的應(yīng)用
25、上卻扮演著十分重要的角色。從而達(dá)到安全使用網(wǎng)絡(luò)的目的,是一門在網(wǎng)絡(luò)上不可缺少的技術(shù)。</p><p><b> 1.2 加密的概念</b></p><p> 數(shù)據(jù)加密的基本過程就是對(duì)原來為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的
26、目的。該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。</p><p> 加密在網(wǎng)絡(luò)上的作用就是防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取。一個(gè)簡(jiǎn)單的例子就是密碼的傳輸,計(jì)算機(jī)密碼極為重要,許多安全防護(hù)體系是基于密碼的,密碼的泄露在某種意義上來講意味著其安全體系的全面崩潰。</p><p> 數(shù)字簽名就是基于加密技術(shù)的,它的作用就是用來確定用戶是否是真實(shí)的。應(yīng)用最多的還是電子
27、郵件,如當(dāng)用戶收到一封電子郵件時(shí),郵件上面標(biāo)有發(fā)信人的姓名和信箱地址,很多人可能會(huì)簡(jiǎn)單地認(rèn)為發(fā)信人就是信上說明的那個(gè)人,但實(shí)際上偽造一封電子郵件對(duì)于一個(gè)通常人來說是極為容易的事。在這種情況下,就要用到加密技術(shù)基礎(chǔ)上的數(shù)字簽名,用它來確認(rèn)發(fā)信人身份的真實(shí)性。</p><p> 類似數(shù)字簽名技術(shù)的還有一種身份認(rèn)證技術(shù),有些站點(diǎn)提供入站FTP和WWW服務(wù),當(dāng)然用戶通常接觸的這類服務(wù)是匿名服務(wù),用戶的權(quán)力要受到限制,但
28、也有的這類服務(wù)不是匿名的,如某公司為了信息交流提供用戶的合作伙伴非匿名的FTP服務(wù),或開發(fā)小組把他們的Web網(wǎng)頁上載到用戶的WWW服務(wù)器上,現(xiàn)在的問題就是,用戶如何確定正在訪問用戶的服務(wù)器的人就是用戶認(rèn)為的那個(gè)人,身份認(rèn)證技術(shù)就是一個(gè)好的解決方案。</p><p> 在這里需要強(qiáng)調(diào)一點(diǎn)的就是,文件加密其實(shí)不只用于電子郵件或網(wǎng)絡(luò)上的文件傳輸,其實(shí)也可應(yīng)用靜態(tài)的文件保護(hù),如PIP軟件就可以對(duì)磁盤、硬盤中的文件或文件
29、夾進(jìn)行加密,以防他人竊取其中的信息[1]。</p><p> 1.2.1 加密的理由</p><p> 當(dāng)今網(wǎng)絡(luò)社會(huì)選擇加密已是我們別無選擇,其一是我們知道在互聯(lián)網(wǎng)上進(jìn)行文件傳輸、電子郵件商務(wù)往來存在許多不安全因素,特別是對(duì)于一些大公司和一些機(jī)密文件在網(wǎng)絡(luò)上傳輸。而且這種不安全性是互聯(lián)網(wǎng)存在基礎(chǔ)——TCP/IP協(xié)議所固有的,包括一些基于TCP/IP的服務(wù);另一方面,互聯(lián)網(wǎng)給眾多的商家?guī)?/p>
30、來了無限的商機(jī),互聯(lián)網(wǎng)把全世界連在了一起,走向互聯(lián)網(wǎng)就意味著走向了世界,這對(duì)于無數(shù)商家無疑是夢(mèng)寐以求的好事,特別是對(duì)于中小企業(yè)。為了解決這一對(duì)矛盾、為了能在安全的基礎(chǔ)上大開這通向世界之門,我們只好選擇了數(shù)據(jù)加密和基于加密技術(shù)的數(shù)字簽名。</p><p> 加密在網(wǎng)絡(luò)上的作用就是防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取。一個(gè)簡(jiǎn)單的例子就是密碼的傳輸,計(jì)算機(jī)密碼極為重要,許多安全防護(hù)體系是基于密碼的,密碼的泄露在某
31、種意義上來講意味著其安全體系的全面崩潰。</p><p> 通過網(wǎng)絡(luò)進(jìn)行登錄時(shí),所鍵入的密碼以明文的形式被傳輸?shù)椒?wù)器,而網(wǎng)絡(luò)上的竊聽是一件極為容易的事情,所以很有可能黑客會(huì)竊取得用戶的密碼,如果用戶是Root用戶或Administrator用戶,那后果將是極為嚴(yán)重的。</p><p> 這樣的例子實(shí)在是太多了,解決上述難題的方案就是加密,加密后的口令即使被黑客獲得也是不可讀的,加密后
32、的文件或者數(shù)據(jù)沒有收件人的私鑰也無法解開,文件和數(shù)據(jù)將成為一大堆無任何實(shí)際意義的亂碼??傊疅o論是單位還是個(gè)人在某種意義上來說加密也成為當(dāng)今網(wǎng)絡(luò)社會(huì)進(jìn)行文件或郵件安全傳輸?shù)臅r(shí)代象征。</p><p> 1.2.2 加密的方法</p><p> 加密技術(shù)是電子商務(wù)采取的主要安全保密措施,是最常用的安全保密手段,利用加密技術(shù)手段把重要的數(shù)據(jù)變?yōu)閬y碼(加密)傳送,到達(dá)目的地后再用相同或不同的手
33、段還原(解密)。加密技術(shù)包括兩個(gè)元素:算法和密鑰。算法是將普通的文本(或者可以理解的信息)與一竄數(shù)字(密鑰)的結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來對(duì)數(shù)據(jù)進(jìn)行編碼和解碼的一種算法。在安全保密中,可通過適當(dāng)?shù)拿荑€加密技術(shù)和管理機(jī)制來保證網(wǎng)絡(luò)的信息通訊安全。密鑰加密技術(shù)的密碼體制分為對(duì)稱密鑰體制和非對(duì)稱密鑰體制兩種。相應(yīng)地,對(duì)數(shù)據(jù)加密的技術(shù)分為兩類,即對(duì)稱加密(私人密鑰加密)和非對(duì)稱加密(公開密鑰加密)。對(duì)稱加密以數(shù)據(jù)加密標(biāo)準(zhǔn)(DNS,
34、Data Encryption Standard)算法為典型代表,非對(duì)稱加密通常以RSA(Rivest Shamir Ad1eman)算法為代表。對(duì)稱加密的加密密鑰和解密密鑰相同,而非對(duì)稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密[2]。</p><p> 第2章 加密技術(shù)的分類</p><p> 2.1 加密技術(shù)的分類</p><p>
35、 加密技術(shù)通常分為兩大類:“對(duì)稱式”和“非對(duì)稱式”。</p><p> 2.1.1 “對(duì)稱式”加密技術(shù)</p><p> 對(duì)稱加密采用了對(duì)稱密碼編碼技術(shù),它的特點(diǎn)是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學(xué)中叫做對(duì)稱加密算法,對(duì)稱加密算法使用起來簡(jiǎn)單快捷,密鑰較短,且破譯困難,除了數(shù)據(jù)加密標(biāo)準(zhǔn)(DNS),另一個(gè)對(duì)稱密鑰加密系統(tǒng)是國際數(shù)據(jù)加密算法(ID
36、EA),它比DNS的加密性好,而且對(duì)計(jì)算機(jī)功能要求也沒有那么高。IDEA加密標(biāo)準(zhǔn)由PGP(Pretty Good Privacy)系統(tǒng)使用?!皩?duì)稱式” 加密技術(shù)這種加密技術(shù)目前被廣泛采用,如美國政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對(duì)稱式”加密法,它的Session Key長(zhǎng)度為56Bits。</p><p> 2.1.2 “非對(duì)稱式”加密技術(shù)</p><p> 1976年,美國學(xué)
37、者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協(xié)議,允許在不安全的媒體上的通訊雙方交換信息,安全地達(dá)成一致的密鑰,這就是“公開密鑰系統(tǒng)”。相對(duì)于“對(duì)稱加密算法”這種方法也叫做“非對(duì)稱加密算法”。與對(duì)稱加密算法不同,非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey)和私有密(privatekey)。公開密鑰與私有密鑰是一對(duì),如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)
38、數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱加密算法。</p><p> 通俗的說非對(duì)稱式加密就是加密和解密所使用的不是同一個(gè)密鑰,通常有兩個(gè)密鑰,稱為“公鑰”和“私鑰”,它們兩個(gè)必需配對(duì)使用,否則不能打開加密文件。這里的“公鑰”是指可以對(duì)外公布的,“私鑰”則不能,只能由持有人一個(gè)人知道。它的優(yōu)越性就在這里,因?yàn)閷?duì)稱式的加密方法如果是在網(wǎng)絡(luò)上傳輸加
39、密文件就很難把密鑰告訴對(duì)方,不管用什么方法都有可能被別竊聽到。而非對(duì)稱式的加密方法有兩個(gè)密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時(shí)只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題[3]。</p><p> 2.2 數(shù)據(jù)加密的標(biāo)準(zhǔn)</p><p> 最早、最著名的保密密鑰或?qū)ΨQ密鑰加密算法DES(Data Encryption Standard)是由
40、IBM公司在70年代發(fā)展起來的,并經(jīng)政府的加密標(biāo)準(zhǔn)篩選后,于1976年11月被美國政府采用,DES隨后被美國國家標(biāo)準(zhǔn)局和美國國家標(biāo)準(zhǔn)協(xié)會(huì)(American National Standard Institute,ANSI)承認(rèn)。DES使用56位密鑰對(duì)64位的數(shù)據(jù)塊進(jìn)行加密,并對(duì)64位的數(shù)據(jù)塊進(jìn)行16輪編碼。與每輪編碼時(shí),一個(gè)48位的"每輪"密鑰值由56位的完整密鑰得出來。DES用軟件進(jìn)行解碼需用很長(zhǎng)時(shí)間,而用硬件解碼
41、速度非???。幸運(yùn)的是,當(dāng)時(shí)大多數(shù)黑客并沒有足夠的設(shè)備制造出這種硬件設(shè)備。在1977年,人們估計(jì)要耗資兩千萬美元才能建成一個(gè)專門計(jì)算機(jī)用于DES的解密,而且需要12個(gè)小時(shí)的破解才能得到結(jié)果。當(dāng)時(shí)DES被認(rèn)為是一種十分強(qiáng)大的加密方法。</p><p> 隨著計(jì)算機(jī)硬件的速度越來越快,制造一臺(tái)這樣特殊的機(jī)器的花費(fèi)已經(jīng)降到了十萬美元左右,而用它來保護(hù)十億美元的銀行,那顯然是不夠保險(xiǎn)了。另一方面,如果只用它來保護(hù)一臺(tái)普通
42、服務(wù)器,那么DES確實(shí)是一種好的辦法,因?yàn)楹诳徒^不會(huì)僅僅為入侵一個(gè)服務(wù)器而花那么多的錢破解DES密文。</p><p> 另一種非常著名的加密算法就是RSA了,RSA(Rivest-Shamir-Adleman)算法是基于大數(shù)不可能被質(zhì)因數(shù)分解假設(shè)的公鑰體系。簡(jiǎn)單地說就是找兩個(gè)很大的質(zhì)數(shù)。一個(gè)對(duì)外公開的為“公鑰”(Publickey),另一個(gè)不告訴任何人,稱為"私鑰”(Privatekey)。這兩個(gè)密
43、鑰是互補(bǔ)的,也就是說用公鑰加密的密文可以用私鑰解密,反過來也一樣。</p><p> 假設(shè)用戶甲要寄信給用戶乙,他們互相知道對(duì)方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到后就可以用自己的私鑰解密出甲的原文。由于別人不知道乙的私鑰,所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面,由于每個(gè)人都知道乙的公鑰,他們都可以給乙發(fā)信,那么乙怎么確信是不是甲的來信呢?那就要用到基于加密技術(shù)的數(shù)字簽名了。
44、</p><p> 甲用自己的私鑰將簽名內(nèi)容加密,附加在郵件后,再用乙的公鑰將整個(gè)郵件加密(注意這里的次序,如果先加密再簽名的話,別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以后,乙用自己的私鑰將郵件解密,得到甲的原文和數(shù)字簽名,然后用甲的公鑰解密簽名,這樣一來就可以確保兩方面的安全了[4]。</p><p> 2.3 加密技術(shù)在VPN上的應(yīng)用</p
45、><p> 現(xiàn)在,越多越多的公司走向國際化,一個(gè)公司可能在多個(gè)國家都有辦事機(jī)構(gòu)或銷售中心,每一個(gè)機(jī)構(gòu)都有自己的局域網(wǎng)LAN(Local Area Network),但在當(dāng)今的網(wǎng)絡(luò)社會(huì)人們的要求不僅如此,用戶希望將這些LAN連結(jié)在一起組成一個(gè)公司的廣域網(wǎng),這個(gè)在現(xiàn)在已不是什么難事了。</p><p> 事實(shí)上,很多公司都已經(jīng)這樣做了,但他們一般使用租用專用線路來連結(jié)這些局域網(wǎng),他們考慮的就是
46、網(wǎng)絡(luò)的安全問題?,F(xiàn)在具有加密/解密功能的路由器已到處都是,這就使人們通過互聯(lián)網(wǎng)連接這些局域網(wǎng)成為可能,這就是我們通常所說的虛擬專用網(wǎng)(Virtual Private Network ,VPN)。當(dāng)數(shù)據(jù)離開發(fā)送者所在的局域網(wǎng)時(shí),該數(shù)據(jù)首先被用戶端連接到互聯(lián)網(wǎng)上的路由器進(jìn)行硬件加密,數(shù)據(jù)在互聯(lián)網(wǎng)上是以加密的形式傳送的,當(dāng)達(dá)到目的LAN的路由器時(shí),該路由器就會(huì)對(duì)數(shù)據(jù)進(jìn)行解密,這樣目的LAN中的用戶就可以看到真正的信息了。</p>
47、<p> 第3章 數(shù)據(jù)庫加密技術(shù)</p><p> 3.1 數(shù)據(jù)庫加密的必要性</p><p> 目前,計(jì)算機(jī)大批量數(shù)據(jù)存儲(chǔ)的安全問題、敏感數(shù)據(jù)的防竊取和防篡改問題越來越引起人們的重視。數(shù)據(jù)庫系統(tǒng)作為計(jì)算機(jī)信息系統(tǒng)的核心部件,數(shù)據(jù)庫文件作為信息的聚集體,其安全性將是信息產(chǎn)業(yè)的重中之重。</p><p> 3.2 數(shù)據(jù)庫加密的基本要求</p&
48、gt;<p> 一個(gè)良好的數(shù)據(jù)庫加密系統(tǒng)應(yīng)該滿足的基本要求。字段加密,密匙動(dòng)態(tài)管理,合理處理數(shù)據(jù),不影響合法擁護(hù)的操作。</p><p> 3.2.1 字段加密 </p><p> 在目前條件下,加/脫密的粒度是每個(gè)記錄的字段數(shù)據(jù)。如果以文件或列為單位進(jìn)行加密,必然會(huì)形成密鑰的反復(fù)使用,從而降低加密系統(tǒng)的可靠性或者因加脫密時(shí)間過長(zhǎng)而無法使用。只有以記錄的字段數(shù)據(jù)為單位進(jìn)
49、行加/脫密,才能適應(yīng)數(shù)據(jù)庫操作,同時(shí)進(jìn)行有效的密鑰管理并完成“一次一密”的密碼操作。 </p><p> 3.2.2 密鑰動(dòng)態(tài)管理 </p><p> 數(shù)據(jù)庫客體之間隱含著復(fù)雜的邏輯關(guān)系,一個(gè)邏輯結(jié)構(gòu)可能對(duì)應(yīng)著多個(gè)數(shù)據(jù)庫物理客體,所以數(shù)據(jù)庫加密不僅密鑰量大,而且組織和存儲(chǔ)工作比較復(fù)雜,需要對(duì)密鑰實(shí)現(xiàn)動(dòng)態(tài)管理。 </p><p> 3.2.3 合理處理數(shù)據(jù) &l
50、t;/p><p> 這包括幾方面的內(nèi)容。首先要恰當(dāng)?shù)靥幚頂?shù)據(jù)類型,否則 DBMS將會(huì)因加密后的數(shù)據(jù)不符合定義的數(shù)據(jù)類型而拒絕加載;其次,需要處理數(shù)據(jù)的存儲(chǔ)問題,實(shí)現(xiàn)數(shù)據(jù)庫加密后,應(yīng)基本上不增加空間開銷。在目前條件下,數(shù)據(jù)庫關(guān)系運(yùn)算中的匹配字段,如表間連接碼、索引字段等數(shù)據(jù)不宜加密。文獻(xiàn)字段雖然是檢索字段,但也應(yīng)該允許加密,因?yàn)槲墨I(xiàn)字段的檢索處理采用了有別于關(guān)系數(shù)據(jù)庫索引的正文索引技術(shù)。 </p>&l
51、t;p> 3.2.4 不影響合法用戶的操作 </p><p> 加密系統(tǒng)影響數(shù)據(jù)操作響應(yīng)時(shí)間應(yīng)盡量短,在現(xiàn)階段,平均延遲時(shí)間不應(yīng)超過1/10秒。此外,對(duì)數(shù)據(jù)庫的合法用戶來說,數(shù)據(jù)的錄入、修改和檢索操作應(yīng)該是透明的,不需要考慮數(shù)據(jù)的加/脫密問題。</p><p> 3.3 不同層次實(shí)現(xiàn)數(shù)據(jù)庫加密 </p><p> 我們可以考慮在三個(gè)不同層次實(shí)現(xiàn)對(duì)數(shù)據(jù)庫
52、數(shù)據(jù)的加密,這三個(gè)層次分別是OS、DBMS內(nèi)核層和DBMS外層。 </p><p> 在OS層,無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,從而無法產(chǎn)生合理的密鑰,也無法進(jìn)行合理的密鑰管理和使用。所以,在OS層對(duì)數(shù)據(jù)庫文件進(jìn)行加密,對(duì)于大型數(shù)據(jù)庫來說,目前還難以實(shí)現(xiàn)。 </p><p> 在DBMS內(nèi)核層實(shí)現(xiàn)加密,是指數(shù)據(jù)在物理存取之前完成加/脫密工作。這種方式勢(shì)必造成DBMS和加密器(硬件或軟件
53、)之間的接口需要DBMS 開發(fā)商的支持。這種加密方式的優(yōu)點(diǎn)是加密功能強(qiáng),并且加密功能幾乎不會(huì)影響DBMS 的功能。其缺點(diǎn)是在服務(wù)器端進(jìn)行加/脫密運(yùn)算,加重了數(shù)據(jù)庫服務(wù)器的負(fù)載。 </p><p> 比較實(shí)際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個(gè)外層工具。采用這種加密方式時(shí),加/脫密運(yùn)算可以放在客戶端進(jìn)行,其優(yōu)點(diǎn)是不會(huì)加重?cái)?shù)據(jù)庫服務(wù)器的負(fù)載并可實(shí)現(xiàn)網(wǎng)上傳輸加密,缺點(diǎn)是加密功能會(huì)受一些限制。圖中,“定義加密要求
54、工具”模塊的主要功能是定義如何對(duì)每個(gè)數(shù)據(jù)庫表數(shù)據(jù)進(jìn)行加密。在創(chuàng)建了一個(gè)數(shù)據(jù)庫表后,通過這一工具對(duì)該表進(jìn)行定義;“數(shù)據(jù)庫應(yīng)用系統(tǒng)”的功能是完成數(shù)據(jù)庫定義和操作。數(shù)據(jù)庫加密系統(tǒng)將根據(jù)加密要求自動(dòng)完成對(duì)數(shù)據(jù)庫數(shù)據(jù)的加/ 脫密[5]。</p><p> 3.4 數(shù)據(jù)庫加密的安全措施</p><p> 數(shù)據(jù)庫加密系統(tǒng)首先要解決系統(tǒng)本身的安全性和可靠性問題,在這方面,可以采用以下幾項(xiàng)安全措施:在用
55、戶進(jìn)入系統(tǒng)時(shí)進(jìn)行兩級(jí)安全控制,防止非法拷貝,安全的數(shù)據(jù)抽取方式。</p><p> 3.4.1 在用戶進(jìn)入系統(tǒng)時(shí)進(jìn)行兩級(jí)安全控制</p><p> 這種控制可以采用多種方式,包括設(shè)置數(shù)據(jù)庫用戶名和口令,或者利用IC卡讀寫器/指紋識(shí)別器進(jìn)行用戶身份認(rèn)證。 </p><p> 3.4.2 防止非法拷貝 </p><p> 對(duì)于純軟件系統(tǒng),
56、可以采用軟指紋技術(shù)防止非法拷貝,當(dāng)然,如果每臺(tái)客戶機(jī)上都安裝加密卡等硬部件,安全性會(huì)更好。此外,還應(yīng)該保留數(shù)據(jù)庫原有的安全措施,如權(quán)限控制、備份/恢復(fù)和審計(jì)控制等。 </p><p> 3.4.3 安全的數(shù)據(jù)抽取方式 </p><p> 提供兩種卸出和裝入數(shù)據(jù)庫中加密數(shù)據(jù)的方式:其一是密文方式卸出,這種卸出方式不脫密,卸出的數(shù)據(jù)還是密文,在這種模式下,可直接使用 DBMS提供的卸出/裝
57、入工具;其二是明文方式卸出,這種卸出方式需要脫密,卸出的數(shù)據(jù)是明文,在這種模式下,可利用系統(tǒng)專用工具先進(jìn)行數(shù)據(jù)轉(zhuǎn)換,再使用DBMS提供的卸出/裝入工具完成。</p><p> 3.5 數(shù)據(jù)庫加密系統(tǒng)的結(jié)構(gòu)</p><p> 數(shù)據(jù)庫加密系統(tǒng)分成兩個(gè)功能獨(dú)立的主要部件:一個(gè)是加密字典管理程序,另一個(gè)是數(shù)據(jù)庫加/脫密引擎。 </p><p> 數(shù)據(jù)庫加密系統(tǒng)將用戶對(duì)
58、數(shù)據(jù)庫信息具體的加密要求記載在加密字典中,加密字典是數(shù)據(jù)庫加密系統(tǒng)的基礎(chǔ)信息。 </p><p> 加密字典管理程序,是管理加密字典的實(shí)用程序,是數(shù)據(jù)庫管理員變更加密要求的工具。 </p><p> 加密字典管理程序通過數(shù)據(jù)庫加/脫密引擎實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的加密、脫密及數(shù)據(jù)轉(zhuǎn)換等功能,此時(shí),它作為一個(gè)特殊客戶來使用數(shù)據(jù)庫加/脫密引擎。 </p><p> 數(shù)據(jù)庫加
59、/脫密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,負(fù)責(zé)在后臺(tái)完成數(shù)據(jù)庫信息的加/脫密處理,對(duì)應(yīng)用開發(fā)人員和操作人員是透明的。 </p><p> 按以上方式實(shí)現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點(diǎn)。首先,系統(tǒng)對(duì)數(shù)據(jù)庫的最終用戶完全透明,數(shù)據(jù)管理員可以指定需要加密的數(shù)據(jù)并根據(jù)需要進(jìn)行明文/密文的轉(zhuǎn)換工作;其次,系統(tǒng)完全獨(dú)立于數(shù)據(jù)庫應(yīng)用系統(tǒng),不需要改動(dòng)數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實(shí)現(xiàn)加密功能,同時(shí)系統(tǒng)采用了分組加密法和二級(jí)密鑰管理,實(shí)現(xiàn)了“一次
60、一密”;其三,系統(tǒng)在客戶端進(jìn)行數(shù)據(jù)加/脫密運(yùn)算,不會(huì)影響數(shù)據(jù)庫服務(wù)器的系統(tǒng)效率,數(shù)據(jù)加/脫密運(yùn)算基本無延遲感覺。 </p><p> 數(shù)據(jù)庫加密系統(tǒng)能夠有效地保證數(shù)據(jù)的安全,即使黑客竊取了關(guān)鍵數(shù)據(jù),他仍然難以得到所需的信息,因?yàn)樗械臄?shù)據(jù)都經(jīng)過了加密。另外,數(shù)據(jù)庫加密以后,可以設(shè)定不需要了解數(shù)據(jù)內(nèi)容的系統(tǒng)管理員不能見到明文,大大提高了關(guān)鍵數(shù)據(jù)的安全性[6]。</p><p> 第4章
61、Access數(shù)據(jù)庫加密技術(shù)</p><p> 4.1 Access數(shù)據(jù)庫的安全性問題</p><p> Access數(shù)據(jù)庫作為微軟推出的以標(biāo)準(zhǔn)JET為引擎的桌面型數(shù)據(jù)庫系統(tǒng),由于具有操作簡(jiǎn)單、界面友好等特點(diǎn),成為許多中小型網(wǎng)上應(yīng)用系統(tǒng)的首選數(shù)據(jù)庫。Access數(shù)據(jù)庫在為我們帶來便捷的同時(shí),也帶來了不容忽視的安全問題。</p><p> Access數(shù)據(jù)庫的設(shè)置
62、密碼算法比較簡(jiǎn)單,很容易被破解。Access數(shù)據(jù)庫的文件頭中42H-4EH為密碼區(qū)。設(shè)置密碼時(shí),根據(jù)所設(shè)密碼的ASCII碼與密碼區(qū)的內(nèi)容進(jìn)行異或運(yùn)算,最后將運(yùn)算的結(jié)果存入密碼區(qū)。 </p><p> 在Access數(shù)據(jù)庫打開之后,數(shù)據(jù)庫中的所有對(duì)象對(duì)用戶都將是可用的。對(duì)于一些存儲(chǔ)敏感數(shù)據(jù)的Access數(shù)據(jù)庫,除了設(shè)置數(shù)據(jù)庫密碼外,應(yīng)該對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行加密。 </p><p> 由此
63、可以看出,Access的安全性有待于進(jìn)一步提高。</p><p> 4.2 Access數(shù)據(jù)庫的加密技術(shù)</p><p> Access 提供了設(shè)置數(shù)據(jù)庫安全的幾種傳統(tǒng)方法:為打開的數(shù)據(jù)庫設(shè)置密碼,或設(shè)置用戶級(jí)安全,以限制允許用戶訪問或更改數(shù)據(jù)庫的哪一部分,以及加密數(shù)據(jù)庫使用戶無法通過工具程序或字處理程序查看和修改數(shù)據(jù)庫中的敏感數(shù)據(jù)。除這些方法之外,還可將數(shù)據(jù)庫保存為 MDE 文件以刪
64、除數(shù)據(jù)庫中可編輯的 Visual Basic 代碼以防止對(duì)窗體、報(bào)表和模塊的設(shè)計(jì)進(jìn)行修改。 </p><p> (1)設(shè)置密碼。最簡(jiǎn)單的方法是為打開的數(shù)據(jù)庫設(shè)置密碼。設(shè)置密碼后,打開數(shù)據(jù)庫時(shí)將顯示要求輸入密碼的對(duì)話框。只有鍵入正確密碼的用戶才可以打開數(shù)據(jù)庫。在數(shù)據(jù)庫打開之后,數(shù)據(jù)庫中的所有對(duì)象對(duì)用戶都將是可用的。 </p><p> (2)用戶級(jí)安全。設(shè)置數(shù)據(jù)庫安全的最靈活和最廣泛的方
65、法是設(shè)置用戶級(jí)安全。這種安全類似于很多網(wǎng)絡(luò)中使用的方法,它要求用戶在啟動(dòng)Access 時(shí)確認(rèn)自己的身份并鍵入密碼。 </p><p> (3)加密數(shù)據(jù)庫。對(duì)數(shù)據(jù)庫進(jìn)行加密將壓縮數(shù)據(jù)庫文件,并使用戶無法通過工具程序或字處理程序查看和修改數(shù)據(jù)庫中的敏感數(shù)據(jù)[7]。</p><p> 4.3 對(duì)于Access97文件的研究</p><p> Access97是一款比
66、較老了的數(shù)據(jù)庫軟件了。對(duì)于Access97的密碼破解,在很多的網(wǎng)站和雜志上都有過一些介紹。因此,對(duì)于才了解加密技術(shù)的我,決定先去了解Access97數(shù)據(jù)庫的加密技術(shù)與解密方法。然后在對(duì)Access2000數(shù)據(jù)庫進(jìn)行研究。</p><p> 通過查找資料,終于了解了Access97數(shù)據(jù)庫的加密方式,現(xiàn)在我在這里簡(jiǎn)單的重復(fù)一下。</p><p> Access97的密匙是固定的13個(gè)字節(jié),
67、而且經(jīng)過了解知道了Access97文件的密匙是存放在.mdb文件的第0x42字節(jié)處的13個(gè)相連的位置中,其13個(gè)字節(jié)分別為0x86,0xfb,0xec,0x37,0x5d,0x44,0x9c,0xfa,0xc6,0x5e,0x28,0xe6,0x13。將這些位置的代碼與上面的字節(jié)異或后即可得到數(shù)據(jù)庫的密碼。通過了解Access97數(shù)據(jù)庫的加密技術(shù)和掌握的解密方法,我用這種方法對(duì)Access2000數(shù)據(jù)庫也進(jìn)行了同樣的解密操作,想試著解開
68、Access2000數(shù)據(jù)庫的密碼??墒前l(fā)現(xiàn)上面的方法已經(jīng)無法解開Access2000數(shù)據(jù)庫的密碼,由此可以知道,Access2000數(shù)據(jù)庫的加密技術(shù)使用的是與Access97不同的加密方式。對(duì)于Access2000數(shù)據(jù)庫到底有什么地方進(jìn)行了改變,其加密技術(shù)是否有什么新的改進(jìn),我決定對(duì)Access2000進(jìn)行一些研究。</p><p> 第5章Access2000數(shù)據(jù)庫的研究</p><p&g
69、t; 5.1 Access2000數(shù)據(jù)庫的研究</p><p> 對(duì)與Access2000數(shù)據(jù)庫我使用的分析工具是UltraEdit32 v10.00,編程工具我使用的是VB6.0。選擇使用VB進(jìn)行編程是因?yàn)閂B使用起來十分的簡(jiǎn)單,而且容易上手。</p><p> 5.1.1 創(chuàng)建一個(gè)空的Access2000文件</p><p> 首先我創(chuàng)建了一個(gè)空密碼的A
70、ccess2000數(shù)據(jù)庫文件db1.mdb,包含一個(gè)表,并且不在文件中添加任何的數(shù)據(jù),因此該文件中的每一個(gè)字段都是沒有任何數(shù)據(jù)的。然后保存退出。創(chuàng)建這樣的一個(gè)空文件,主要的目的就是為了用來作為一個(gè)對(duì)比的模板。而不在文件中添加內(nèi)容,主要是為了避免在比較時(shí)出現(xiàn)太多不相同的地方,從而影響密碼字段的判斷。創(chuàng)建過程如圖5.1,圖5.2所示。</p><p> 圖5.1 創(chuàng)建空文件</p><p>
71、 圖5.2 保存空文件</p><p> 5.1.2 創(chuàng)建一個(gè)帶有密碼的Access2000文件</p><p> 我將保存好的db1.mdb文件復(fù)制一份,命名為db2.mdb。這樣做的目的主要是為了保證其中的數(shù)據(jù)與db1.mdb文件是完全一致的。然后,我用獨(dú)占的方式打開db2.mdb文件,如圖5.3所示。只有使用獨(dú)占方式打開,才能對(duì)db2.mdb文件進(jìn)行加密。我對(duì)db2.mdb文件
72、加上密碼1234567890123,如圖5.4所示。保存后,退出。</p><p> 圖5.3 以獨(dú)占方式打開文件</p><p> 圖5.4 設(shè)置文件密碼</p><p> 5.1.3 對(duì)比文件</p><p> 現(xiàn)在準(zhǔn)備工作就已經(jīng)完成了,接下來主要是使用UltraEdit32 v10.00程序打開db1.mdb和db2.mdb這2
73、個(gè)文件,并且對(duì)db1.mdb和db2.mdb這2個(gè)文件的各個(gè)字節(jié)進(jìn)行對(duì)比,查出哪一些字節(jié)處發(fā)生了變化。我使用的是UltraEdit32中附帶的比較程序,能夠快速的將字節(jié)不同的地方顯示出來。經(jīng)過一翻對(duì)比,終于發(fā)現(xiàn)了2個(gè)文件中不同的地方,如圖5.5所示:</p><p><b> 圖5.5 對(duì)比結(jié)果</b></p><p> 現(xiàn)在我將字節(jié)不同的地方提取出來:</
74、p><p><b> db1.mdb:</b></p><p> 00000040h: BC 4E 9D 67 EC 37 46 D8 9C FA DD C2 28 E6 08 2A;</p><p> 00000050h: 8A 60 4F 08 7B 36 EE EE DF B1 6C 68 13 43 D4 33;</p>
75、<p> 00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0 7C 99 05 13;</p><p><b> db2.mdb:</b></p><p> 00000040h: BC 4E AC 67 DE 37 75 D8 A8 FA E8 C2 1E E6 3F 2A;</p><p
76、> 00000050h: B2 60 76 08 4B 36 DF EE ED B1 5F 68 13 43 D4 33;</p><p> 00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0 7C 99 05 13;</p><p> 為了方便看清楚,我將不同的地方加粗給表現(xiàn)了出來。由于了解了Access97的加密方式,便可以發(fā)現(xiàn)Ac
77、cess2000加密的方式不再像Access97一樣連續(xù)的存放在密碼字節(jié)里面,而是選擇了隔一個(gè)字節(jié)存放一個(gè)密碼。Access2000采用的加密方式對(duì)于Access97的加密方式來說,密碼的保護(hù)性又有了一些提高。因?yàn)槊艽a字節(jié)的不連續(xù)性,我們想要破解其密碼便會(huì)被其中的無效字節(jié)給誤導(dǎo),從而無法得到想要的結(jié)果。并且由于密碼字節(jié)的不連續(xù)性,Access97的破解密碼的方式和工具便徹底的失去了效用。這種加密方式的改變,雖然只是改變了一小點(diǎn),但卻也印
78、證了加密技術(shù)的不斷進(jìn)步。如果不了解的話,基本上是無法通過非暴力破解的方式去找到密碼的。</p><p> 5.1.4 分析密碼字節(jié)得出密碼</p><p> 現(xiàn)在,我已經(jīng)找到存放密碼的字節(jié)了,接下來便是研究怎么樣通過運(yùn)算得到正確的密碼。或者說接下來我主要的研究便是了解Access2000采用的何種加密技術(shù)。那么選擇什么樣的運(yùn)算方式開始檢驗(yàn)?zāi)兀侩m然Access2000數(shù)據(jù)庫和Access
79、97數(shù)據(jù)庫相比,加密字節(jié)有了不同,但或許它們采用的仍然是相同的運(yùn)算方式。因此我決定先參考Access97的運(yùn)算方法,運(yùn)用“異或”來對(duì)加密字節(jié)進(jìn)行計(jì)算。</p><p> 我將第一個(gè)不同的字節(jié)提取出來,即0xAC,然后讓其和未加密前的密碼字節(jié)的數(shù)字,即0xAC,進(jìn)行異或運(yùn)算。 0x9D^0xAC=0x31,結(jié)果是0x31,而0x31這正好對(duì)應(yīng)的是Ascii碼中的“1”,我設(shè)置的密碼為1234567890123,這
80、結(jié)果與我設(shè)置的密碼的第一位是一樣的,這讓我心中十分的激動(dòng),看來在Access2000中雖然密碼的存放字節(jié)有了改變,但對(duì)于密碼的加密仍然采用的是Access97的異或運(yùn)算方式。當(dāng)然,這還需要我進(jìn)行更多的嘗試才能確定。</p><p> 我懷著激動(dòng)的心情繼續(xù)對(duì)下一個(gè)字節(jié)進(jìn)行計(jì)算,0xEC^0xDE=0x32,而這正好就是Ascii碼中的“2”,這個(gè)結(jié)果又和我所設(shè)置的密碼是一樣的,看來加密的方式應(yīng)該就是通過異或運(yùn)算來
81、進(jìn)行的了。當(dāng)然雖然2個(gè)密碼已經(jīng)出來了,但或許只是運(yùn)氣好而已,只有當(dāng)檢驗(yàn)完所有的字節(jié)得出的密碼與我所設(shè)置的密碼一樣時(shí),才能說是完全的成功。因此我把后面的都一一的進(jìn)行了運(yùn)算,一直到最后一個(gè)0x6C^0x5F=0x33,最后一個(gè)對(duì)應(yīng)的是Ascii碼中的“3”。我將獲得的Ascii碼字符合成字符串,其密碼明為“1234567890123”??磥斫Y(jié)果已經(jīng)很清楚了,Access2000雖然將加密的字段有了一定的調(diào)整,但是在運(yùn)算方式上卻并沒有改變。不
82、過上面的研究只是對(duì)于純數(shù)字的密碼來研究的,那么對(duì)于字母來說,Access2000數(shù)據(jù)庫存放密碼的字段是否有不同,加密方式是否不同還需要進(jìn)一步的研究。</p><p> 5.1.5 深入分析Access2000的加密技術(shù)</p><p> 由于上面的密碼都是由數(shù)字組成,因此有一定的片面性。因?yàn)閷?duì)于密碼的組成來說,基本上不可能都是由純數(shù)字組成的。因此我還必須檢驗(yàn)數(shù)字加上字母,還有常見的一些
83、符號(hào)所設(shè)置的密碼,看看通過上面的研究所采用的解密方式是否同樣適用于字母和符號(hào),看看得到的結(jié)果是否依然正確。當(dāng)然我采用的是同樣的方式來進(jìn)行研究。我將db1.mdb文件復(fù)制一份命名為db3.mdb文件。然后,用獨(dú)占的方式打開,并為其設(shè)置密碼,密碼為我的名字的拼音加上我的學(xué)號(hào)ycchao.02。接下來便是同樣的運(yùn)用UltraEdit32中的程序?qū)b3.mdb文件與db1.mdb文件進(jìn)行比較。比較的結(jié)果如圖5.6所示:</p>
84、<p><b> 圖5.6 對(duì)比結(jié)果</b></p><p> 現(xiàn)在我再次將字節(jié)不同的地方提取出來:</p><p><b> db1.mdb:</b></p><p> 00000040h: BC 4E 9D 67 EC 37 46 D8 9C FA DD C2 28 E6 08 2A;</p&g
85、t;<p> 00000050h: 8A 60 4F 08 7B 36 EE EE DF B1 6C 68 13 43 D4 33;</p><p> 00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0 7C 99 05 13;</p><p><b> db2.mdb:</b></p>&l
86、t;p> 00000040h: BC 4E E4 67 99 37 25 D8 F4 FA BC C2 47 E6 26 2A;</p><p> 00000050h: BA 60 7D 08 7B 36 EE EE DF B1 6C 68 13 43 D4 33;</p><p> 00000060h: B1 33 2F FD 79 5B 89 29 7C 2A AF D0
87、7C 99 05 13;</p><p> 為了方便看清楚,我仍然將不同的地方加粗給表現(xiàn)了出來。</p><p> 現(xiàn)在開始計(jì)算結(jié)果,同樣的我將0x9D與0xE4進(jìn)行異或運(yùn)算,結(jié)果為0x79,而0x79正是Ascii碼中的“y”??磥砩厦鎸?duì)于數(shù)字所采用的加密運(yùn)算方式同樣適用與字母。接下來我又計(jì)算了下一組數(shù)據(jù),我將0xEC與0x99進(jìn)行異或運(yùn)算,得到的結(jié)果為0x75,而0x75正是Asc
88、ii碼中的“u”,看來應(yīng)該是正確的了。當(dāng)然我仍然一一的進(jìn)行了計(jì)算,到了“.”這個(gè)符號(hào)了,這是十分關(guān)鍵的地方,因?yàn)閿?shù)字和字母我都已經(jīng)檢驗(yàn)過了,結(jié)果是正確的,只要“.”符號(hào)也正確,那么Access2000的加密方式便出來了。0x08異或0x26,結(jié)果為0x2E,結(jié)果也是正確的。最后將所有的計(jì)算結(jié)果和起來為“yuchao.02”,而這運(yùn)算出來的密碼明碼和我設(shè)置的密碼是一樣的??磥鞟ccess2000采用的就是異或運(yùn)算對(duì)密碼加密的了。</
89、p><p> 5.2 Access解密工具的開發(fā)研究</p><p> 由于對(duì)Access2000數(shù)據(jù)庫加密技術(shù)已經(jīng)知道了,接下來我想要開發(fā)一個(gè)破解軟件來做進(jìn)一步的驗(yàn)證。當(dāng)然因?yàn)橹懒薃ccess2000數(shù)據(jù)庫加密的方式,開發(fā)一個(gè)小的破解軟件就變的就比較簡(jiǎn)單了。當(dāng)然,最主要的還是Access2000數(shù)據(jù)庫的加密方式并不復(fù)雜,只是十分簡(jiǎn)單的異或運(yùn)算,這種一次運(yùn)算便能達(dá)到解密效果的運(yùn)算使得對(duì)于
90、編程的難度也有了下降。</p><p> 5.2.1 解密工具的窗體布局</p><p> 首先,我在窗體中添加了2個(gè)Command命令按鈕,在Command1的Caption屬性中輸入“破解密碼”,在Command2的Caption屬性中輸入“選擇”。然后,我繼續(xù)在窗體中添加3個(gè)Text文本框按鈕,按順序Text1,Text2,Text3順序排列(文本中的1,2,3只是提示,實(shí)際上是
91、沒有的),最后,我們還需要3個(gè)Label標(biāo)題欄,按照上圖分別輸入“路徑”,“版本”和“密碼”。這樣我所需要的窗體便已經(jīng)飛快的完成了。現(xiàn)在,就只需要加入源代碼了。</p><p> 下面是我窗體的布局,如圖5.7所示:</p><p><b> 圖5.7 窗體布局</b></p><p> 5.2.2 部分源代碼及其含義</p>
92、<p> 下面是Command2中的源代碼以及一些代碼的解釋:</p><p> 這是Command2中單擊事件的代碼:</p><p> Private Sub Command2_Click()</p><p> Text1.Text = GetFileName(True) ‘得到文件的路徑</p><p><
93、b> End Sub</b></p><p> 當(dāng)然Command2中的語句是很簡(jiǎn)單的,這些代碼主要只是提出Command2按鈕的作用,但要真正完成文件的選擇與打開,還需要添加模塊內(nèi)容,其代碼如下:</p><p> Public Function GetFileName(ByVal fbOpen As Boolean, _</p><p>
94、 Optional fsFilter As String = "Acess文件 (*.mdb)| *.mdb|所有文件 (*.*)| *.*", _</p><p> Optional ByVal fsDefaultExt As String, _</p><p> Optional ByVal fsDefFile As String, _</p>
95、<p> Optional ByVal fsDialogTitle As String, _</p><p> Optional ByVal flHwnd As Long = -1) As String</p><p> Dim CommonDialog1 As New clsCommonDialog</p><p> If fbOpen Then
96、</p><p> If (CommonDialog1.VBGetOpenFileName(FileName:=fsDefFile, _</p><p> Filter:=fsFilter, _</p><p> FileTitle:=fsDialogTitle, _</p><p> DefaultExt:=fsDefaultExt
97、, _</p><p> Owner:=flHwnd)) Then</p><p> 上面的代碼我并沒有按照完全編寫的順序來展示,而是通過F8按鈕,使用步執(zhí)行來展示運(yùn)行的狀態(tài),這樣也是為了更方便的去分析和了解程序。</p><p> 對(duì)于取得文件了名字,我采用的是一個(gè)循環(huán)語句。采用循環(huán),對(duì)文件所在的路徑的字母采用逐個(gè)的讀取并保存,直到取的文件所在路徑的最后一個(gè)
98、字母,循環(huán)結(jié)束。其代碼如下:</p><p> Function VBGetOpenFileName(FileName As String, _</p><p> Optional FileTitle As String, _</p><p> Optional FileMustExist As Boolean = True, _</p><
99、;p> Optional MultiSelect As Boolean = False, _</p><p> Optional ReadOnly As Boolean = False, _</p><p> Optional HideReadOnly As Boolean = False, _</p><p> Optional Filter As
100、String = "All (*.*)| *.*", _</p><p> Optional FilterIndex As Long = 1, _</p><p> Optional InitDir As String, _</p><p> Optional DlgTitle As String, _</p><p&g
101、t; Optional DefaultExt As String, _</p><p> Optional Owner As Long = -1, _</p><p> Optional flags As Long = 0) As Boolean</p><p> Dim opfile As OPENFILENAME, s As String, afFlag
102、s As Long</p><p> m_lApiReturn = 0</p><p> m_lExtendedError = 0</p><p> With opfile</p><p> .lStructSize = Len(opfile) ' Add in specific flags and strip out no
103、n-VB flags</p><p> .flags = (-FileMustExist * OFN_FILEMUSTEXIST) Or _</p><p> (-MultiSelect * OFN_ALLOWMULTISELECT) Or _</p><p> (-ReadOnly * OFN_READONLY) Or _</p><p&
104、gt; (-HideReadOnly * OFN_HIDEREADONLY) Or _</p><p> (flags And CLng(Not (OFN_ENABLEHOOK Or _</p><p> OFN_ENABLETEMPLATE)))</p><p> If Owner <> -1 Then </p><p>
105、; .hWndOwner = Owner</p><p> .lpstrInitialDir = InitDir</p><p> .lpstrDefExt = DefaultExt</p><p> .lpstrTitle = DlgTitle</p><p> Dim ch As String, i As Integer
106、39;該段代碼為循環(huán)主體</p><p> For i = 1 To Len(Filter)</p><p> ch = Mid$(Filter, i, 1)</p><p> If ch = "|" Or ch = ":"Then</p><p> s = s & vbNullChar
107、</p><p><b> Else</b></p><p> s = s & ch</p><p><b> End If</b></p><p><b> Next</b></p><p> s = s & vbNullCh
108、ar & vbNullChar</p><p> .lpstrFilter = s</p><p> .nFilterIndex = FilterIndex</p><p> s = FileName & String$(MAX_PATH - Len(FileName), 0)</p><p> .lpstrFile
109、= s</p><p> .nMaxFile = MAX_PATH</p><p> s = FileTitle & String$(MAX_FILE - Len(FileTitle), 0)</p><p> .lpstrFileTitle = s</p><p> .nMaxFileTitle = MAX_FILE<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)-----文件加密與解密算法研究設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----文件加密與解密算法研究設(shè)計(jì)
- 加密解密論文畢業(yè)設(shè)計(jì)
- vc實(shí)現(xiàn)文件簡(jiǎn)單的加密和解密畢業(yè)設(shè)計(jì)論文.doc
- 文件加密解密算法研究與實(shí)現(xiàn)——基于usbkey的文件加密解密方案
- 加密解密文件
- 文件加密解密算法研究與實(shí)現(xiàn)——基于USBKEY的文件加密解密方案.pdf
- 實(shí)現(xiàn)文件簡(jiǎn)單的加密和解密畢業(yè)設(shè)計(jì)任務(wù)書.doc
- 基于java的文件加密解密
- java文件加密解密課程設(shè)計(jì)
- java課程設(shè)計(jì) -- 文件加密與解密
- c語言課程設(shè)計(jì)-文件加密解密
- c語言課程設(shè)計(jì)-文件加密解密
- 文件的加密解密技術(shù)研究.pdf
- vc實(shí)現(xiàn)文件簡(jiǎn)單的加密和解密
- 文件加密與解密—java課程設(shè)計(jì)報(bào)告
- 畢業(yè)設(shè)計(jì)--外發(fā)加密文件管理平臺(tái)
- [優(yōu)秀畢業(yè)設(shè)計(jì)精品] 基于direct3d的windows游戲開發(fā)
- c語言課程設(shè)計(jì)-文件加密解密(含源代碼)
- 加密解密
評(píng)論
0/150
提交評(píng)論