?? 016.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI專題文檔-程序應用-->用修改文件時間的方法來加密文件</TITLE>
<META NAME="keywords" CONTENT=" DELPHI專題文檔-程序應用 用修改文件時間的方法來加密文件">
<META NAME="description" CONTENT=" - DELPHI專題文檔-程序應用 - 用修改文件時間的方法來加密文件">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋體"}
.tt2 {font: 12pt/15pt "宋體"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index6.html">返回</a>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">用修改文件時間的方法來加密文件</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> [摘要]:本文介紹了在Delphi中利用系統函數和Windows
API函數配合Delphi中的DataTimePicker組件來獲取和修改文件的時間信息的方法,以達到軟件信息的簡單加密。
</span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
談到文件加密已經有很多方法了,但傳統的文件型加密方法都存在一些不足。例如:讓人頭痛的密碼技術、復雜的全文加/解密算法、會產生垃圾文件的暗貼技術等等。這里我向大家介紹一種新的文件加密思路。在Win
95/98中選定一個文件后單激鼠標右鍵可以查看文件的屬性。其中會列出該文件的創建時間、修改時間和訪問時間。這些信息的設置一般都是由操作系統(也就是由Dos/Windows等等)自動完成的,不會讓用戶輕易修改。利用這一特性就可以實現很隱蔽的加密技術。
</span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
加密原理:用特定的時間信息替換原來的文件時間信息。 </span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
解密原理:獲取已加密文件的時間信息與特定時間信息比較,如相同則說明該文件是合法的,如不同則說明該文件屬于過期或盜版軟件。
</span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
以上簡單介紹了文件時間屬性的修改方法,利用這種方法可以起到簡單的軟件加密。例如:假設某個軟件或游戲執行完后存儲了一些存檔文件,則操作系統會自動設置該文件的修改時間,那么稍有經驗的用戶就可以用Windows中的“查找文件”功能找到最后被修改的文件。如果該文件是記錄密碼或用戶信息的文件(實際上很多情況都是這樣),后果簡直不堪設想。另外,如果適當設置文件的創建、修改時間和訪問時間,例如:保持三者之間為一定的時間間隔就可以作為加密的一種好手段。運行主軟件時只要動態的檢測一下文件時間是否滿足特定的要求就知道該軟件是否過期或屬于盜版軟件,從而達到加密和保護軟件的目的,并且不會產生垃圾文件。
</span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
以下介紹具體實現方法: </span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> 利用Delphi中的FindFirst函數可以得到一個文件的屬性記錄,該記錄中的FindData域中就記載了詳細的文件時間信息。FindData中的時間信息不能直接得到利用本文源程序中的CovFileDate函數可以完成文件時間格式的轉換。設置文件的時間要復雜一些,利用Delphi中的DataTimePicker組件來輔助完成這一復雜的操作??梢岳盟膫€DataTimePicker組件來完成文件創建時間和修改時間的設置。注意:文件的訪問時間用修改時間來代替。使用下面的例子時,請在您的Form上添加四個DataTimePicker組件。其中第一和第三個DataTimePicker組件中的Kind設置為dtkDate,第二個和第四個DataTimePicker組件中的Kind設置為dtkTime,DateMode設置為dmUpDown。
</span>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
備注:修改文件時間的范圍是從公元1792年9月19日開始的,上限可以達到公元2999年或更高。另外,請不要將此技術用于破壞他人文件等非正當途徑。
</span></p>
<hr color="#EE9B73" size="1" width="94%">
</TD>
</TR>
</table>
</BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -