[開源] AccountMaster - 賬戶管理 -> 項目介紹及用戶使用流程設計
很有幸參與由我的好友 WT 發起的開源項目, AccountMaster - 賬戶管理 , 這個軟件的名字里沒有"大濕", 也沒有"磚家", 只有開源。
軟件功能: 讓您輕松而又放心的管理您的互聯網賬戶和密碼。
發起背景: 在這個賬號密碼橫行的年代, 想要記住自己全部的賬號和密碼似乎已經不太可能。 對於這點, 筆者是深有體會, 各種密碼寫了密密麻麻兩頁紙, 甚至有時筆者連某個網站是否注冊過都忘記了, 如果不同網站使用相同的用戶名以及密碼雖說好記但是這樣是十分危險的, 一些網站由於由於用戶賬戶管理不慎就會給您帶來莫大的麻煩。
或許有讀者會問, 網上不是有密碼管理軟件嗎? 像某山與x60提供的密碼管理大師, 密碼專家之類的軟件。 筆者在這里不想黑任何一款軟件, 真心說, 不用的原因是不敢用, 這類軟件是屬於敏感級軟件, 開源用着放心, 當我的好友 WT 聯系我說想要發起這么一個開源項目時我就感覺很贊, 並且立馬加入了。
對這個項目的一些介紹:
1>. 編程語言
C/C++, 我們希望寫出來的軟件體積盡可能的小, 並且盡可能少的占用系統資源, 所以這次項目所使用的語言以及數據庫都是經過特別選擇的。
2>. 數據庫
SQLite, 一個迷你的輕量型數據庫, 零配置, 開源, 占用資源非常的低, 因此被選入到這個項目中來。
3>. 圖形庫
圖形庫不是MFC、不是Qt、也不是wxWidgets, 而是 Windows API, 我們打算用與系統親和能力最強的Windows API來實現軟件的界面以及軟件的各部分功能, 或許這聽起來很酷, 不是嗎?
4>. 適用平台
Windows
5>. 軟件功能的宣傳標語
信息時代,每個人都擁有不少的網絡賬戶,您還在為您無數個賬戶的密碼而犯愁么,記得這個不記得那個?本軟件將管理您所有的賬戶密碼,並以密文方式存下,幫助您不忘各個賬戶密碼。
6>. 項目地址
項目托管在Google Code上, 地址: http://code.google.com/p/account-master/
一些基礎的設計 - 由WT設計
Ⅰ - 初步設計要求
1.記下用戶輸入的賬戶密碼,是什么的賬戶,提供一個賬戶安全級選擇(普通0,敏感1,最高2)。
2.若是網站賬戶,點擊賬戶能直接打開對應的網站。
3.設置一個管理用戶和密碼,以及保護等級(一般0,強力1,絕對2),保護所有賬戶密碼。
4.若忘記管理用戶的密碼,則根據之前選的保護等級,進行不同的操作:
a 若選擇的是一般等級,則會要求您輸入數據庫里的3個賬戶和密碼,如果數據庫里沒有存入密碼,則直接打開,若存入不夠,輸入全部正確則打開,輸入錯誤一個則不會打開。(5次錯誤機會,錯誤機會用完將必須等24小時)
b 若選擇的是強力等級,則會要求您輸入數據庫里屬於最高的3個賬戶和密碼,如果數據庫里最高沒有存入密碼,或存入不夠,依次降低安全級輸入賬戶密碼,輸入錯誤一個都不會打開。若無密碼存入,直接打開(3次錯誤機會)
c 若選擇的是絕對等級,則無法打開。
5.用戶可設置全局熱鍵,隨意呼出,方便查看、錄入賬戶密碼。
6.呼出時簡易識別下當前前台窗口標題,智能顯示賬戶和密碼,或者錄入。
Ⅱ - 數據庫結構大致雛形
CREATE TABLE [am_acount_type] ( [name] CHAR(16), CONSTRAINT [] PRIMARY KEY ([name])); CREATE TABLE [am_users] ( //軟件用戶 [id] INT, [name] CHAR(32), [pwd] CHAR(32), [protect] INT DEFAULT (0), [condone] INT DEFAULT (0), [cur_condone] INT DEFAULT (0), [unlock_time] INT DEFAULT (0), [hotkey] INT DEFAULT (0), [time] INT DEFAULT (0), CONSTRAINT [sqlite_autoindex_am_users_1] PRIMARY KEY ([id])); CREATE TABLE [am_accounts] ( //用戶保存的賬戶 [myname] CHAR(64), [account_name] CHAR(32), [account_pwd] CHAR(32), [cate] INT DEFAULT (0), [user] INT DEFAULT (0), [level] INT DEFAULT (0), [comment] CHAR(128), [time] INT DEFAULT (0), CONSTRAINT [sqlite_autoindex_am_accounts_1] PRIMARY KEY ([user], [myname])); CREATE TABLE [am_acount_cates] ( //保存的賬戶所屬種類 [id] INT, [name] CHAR(64), [desc] CHAR(128), [type] CHAR(16), [url] CHAR(512), [keywords] CHAR(128), [time] INT DEFAULT (0), CONSTRAINT [sqlite_autoindex_am_acount_cates_1] PRIMARY KEY ([id]));
用戶使用流程設計
用戶使用流程設計由筆者和WT分別進行獨立的設計, 然后再取優去劣進行結合, 下面是筆者的用戶使用流程設計。
1>. 用戶進入軟件管理界面的流程
概要說明:
該流程是用戶啟動軟件后的操作情況, 啟動時會顯示出登錄界面, 並且在該界面上有登錄、新用戶注冊、找回密碼等功能, 用戶通過不同的選擇進行不同的操作, 當進行登錄時, 如果登錄成功則進入管理中心;
新用戶注冊會逐步引導用戶建立好一個新的管理賬戶, 在新管理賬戶建立完畢后需要重新登錄才能進入管理中心。
找回密碼按照設定的找回規則進行找回。
2>. 登錄流程
概要說明:
登錄流程同一用戶會限制登錄嘗試次數, 防止暴力破解管理密碼, 目前初步的設計是不同的管理賬戶在登錄時只能嘗試5次密碼, 若5次均失敗的話則鎖定該賬戶30分鍾, 在這段時間內不能進行登錄和找回密碼。
3>. 找回密碼流程
找回密碼是按照自己管理賬戶的保護級別以及存儲的賬戶里的密碼進行找回的, 當管理賬戶的級別為一般等級, 則會要求您輸入數據庫里的3個賬戶和密碼,如果數據庫里沒有存入密碼, 則直接打開, 若存入不夠, 輸入全部正確則打開, 輸入錯誤一個則不會打開。(5次錯誤機會,錯誤機會用完將必須等24小時) ;
當若選擇的是強力等級, 則會要求您輸入數據庫里屬於最高的3個賬戶和密碼, 如果數據庫里最高沒有存入密碼, 或存入不夠, 依次降級要求輸入賬戶密碼, 輸入錯誤一個都不會打開。若無密碼存入, 直接打開(3次錯誤機會) ;
若選擇的是絕對等級,忘記則無法找回。
由WT設計的找回密碼的詳細流程(點擊圖片即可查看大圖):
項目目錄結構:
res文件夾下是外部資源, src下是源代碼, 包括頭文件,源文件,資源腳本等。
更多更完善的功能正在逐步設計中, WT說了, 在功能上, 有信心秒殺某密專家和大師, 筆者也很有信心! 希望能夠得到大家的支持與建議!
項目下載: http://code.google.com/p/account-master/
--------------------
wid, 2012.12.26