程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用修改文件時間的方法來加密文件

用修改文件時間的方法來加密文件

編輯:Delphi

  談到文件加密已經有很多方法了,但傳統的文件型加密方法都存在一些不足。例如:讓人頭痛的密碼技術、復雜的全文加/解密算法、會產生垃圾文件的暗貼技術等等。這裡我向大家介紹一種新的文件加密思路。

  在Win 95/98中選定一個文件後單激鼠標右鍵可以查看文件的屬性。其中會列出該文件的創建時間、修改時間和訪問時間。這些信息的設置一般都是由操作系統(也就是由DOS/Windows等等)自動完成的,不會讓用戶輕易修改。利用這一特性就可以實現很隱蔽的加密技術。

  加密原理

  用特定的時間信息替換原來的文件時間信息。

  解密原理

  獲取已加密文件的時間信息與特定時間信息比較,如相同則說明該文件是合法的,如不同則說明該文件屬於過期或盜版軟件。

  以上簡單介紹了文件時間屬性的修改方法,利用這種方法可以起到簡單的軟件加密。例如:假設某個軟件或游戲執行完後存儲了一些存檔文件,則操作系統會自動設置該文件的修改時間,那麼稍有經驗的用戶就可以用Windows中的“查找文件”功能找到最後被修改的文件。如果該文件是記錄密碼或用戶信息的文件(實際上很多情況都是這樣),後果簡直不堪設想。另外,如果適當設置文件的創建、修改時間和訪問時間,例如:保持三者之間為一定的時間間隔就可以作為加密的一種好手段。運行主軟件時只要動態的檢測一下文件時間是否滿足特定的要求就知道該軟件是否過期或屬於盜版軟件,從而達到加密和保護軟件的目的,並且不會產生垃圾文件。

  以下介紹具體實現方法

  利用Delphi中的FindFirst函數可以得到一個文件的屬性記錄,該記錄中的FindData域中就記載了詳細的文件時間信息。FindData中的時間信息不能直接得到利用本文源程序中的CovFileDate函數可以完成文件時間格式的轉換。設置文件的時間要復雜一些,利用Delphi中的DataTimePicker組件來輔助完成這一復雜的操作。可以利用四個DataTimePicker組件來完成文件創建時間和修改時間的設置。注意:文件的訪問時間用修改時間來代替。使用下面的例子時,請在您的Form上添加四個DataTimePicker組件。其中第一和第三個DataTimePicker組件中的Kind設置為dtkDate,第二個和第四個DataTimePicker組件中的Kind設置為dtkTime,DateMode設置為dmUpDown。

  備注:修改文件時間的范圍是從公元1792年9月19日開始的,上限可以達到公元2999年或更高。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved