ToDoList原始碼研究

NO IMAGE

ToDoList是一個“簡單有效的免費任務管理軟體”,它由CodeProject網站開源。你可以從官網http://www.abstractspoon.com/訪問到它的最新資訊。

ToDoList由一名資深軟體工程師維護,從軟體外觀設計到編碼風格等,完全符合一個專業軟體的風範。原始碼清晰易讀,外部依賴少,是Windows下C 介面開發學習的典範,可用VC6開啟編譯,立即就可以執行。原始碼基於MFC框架開發。

一些可用的工具類(主要在Shared目錄下):
1)XML類
CXmlFileEx

2)web update的實現,在下面函式中
void CToDoListWnd::CheckForUpdates(BOOL bManual)

3)登錄檔類
CRegKey

4)複雜列表控制元件的實現
比如,在列表中顯示樹狀記錄,特殊欄位的標記(打中線等)

5) 匯出類,dll庫的形式
GPExport

6)加解密庫,dll庫的形式,支援sha等演算法
EncryptDecrypt

 

注:
     sha演算法和md5演算法一樣,也是一種雜湊加密演算法(一種不可逆的加密演算法, 主要用於摘要加密),有sha-0 -1 -2三個版本,其中sha-2有更高的安全性,ToDoList裡面就有sha256,sha2,sha384和sha512的演算法。

     MD5演算法是128位的,目前基本已被破譯(特別是山東大學王小云教授發現的破譯方法之後);目前廣泛使用的sha1是160位的,但也有漏洞,所以美國國家技術與標準局建議使用SHA-224、SHA-256、SHA-384和SHA-512。

     演算法一般安全性比較: DES < MD5 < SHA