[开源] AccountMaster - 账户管理 -> 项目介绍及用户使用流程设计
2012-12-26 18:08 wid 阅读(3841) 评论(12) 编辑 收藏 举报[开源] 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