SingleSimon - 密码管理器应用程序
一款开源密码管理器,具有一些高级功能和精美的界面

引言
SingleSimon
是一款密码管理器应用程序,除了在数据库中存储敏感登录数据外,还提供以下功能:
- 在用户成功登录网站后自动检索用户登录数据,并在下次登录时自动填充该登录信息。
- 通过使用个人数据集,一键填充整个网页表单。
- 存储通常放在“即时贴”上的任何类型的数据——密码、锁组合、软件序列号等。
该应用程序是我计算机科学学士学位的毕业设计项目,在以色列 MTA(特拉维夫学术学院)完成,指导老师是 Mr. Kirsh Amir。
背景
当我第一次想到将密码管理器工具作为我的毕业设计项目时,这听起来是个不错的想法,而且由于我只懂基础的 C#,这是一个很好的学习经验、熟悉 SQL 以及使用 DOM 环境的机会——尤其是钩子处理 Explorer 事件。
从这个项目开始,我尽量对代码进行了注释,希望能对新来者有所帮助。
该项目大约花了两个半学期。
Using the Code
要作为用户尝试该程序,请将压缩的可执行文件复制到任何文件夹,然后运行主 EXE 文件。帮助可以在“帮助”菜单中找到,也可以通过应用程序中散布的每个帮助按钮找到。
使用源代码非常简单——我尝试为大部分代码添加注释。
该程序要求安装 .NET Framework 2.0 以及 SQL Express Server 2005。
SingleSimon - 主要功能
市面上有很多密码管理器。我的产品有几个独特之处:
- 它是开源的——这意味着你可以直接使用它,或者根据自己的需求进行修改,甚至让它变得更好!
- 它让你完全控制填充网页表单的过程,这使得它非常适合在你的计算机后台运行,并用于节省时间和精力。
- 它拥有一个非常酷的界面!
主要代码元素
SingleSimon Main
的代码元素可以分为以下几类:
- 表单代码。每个表单包含其大部分代码。
WebScanLogic
代码。这负责检测可填充表单和用户登录。FillEntireFormHelper
代码。这部分代码负责填充网页表单的算法。- 共享类——暴露用于通用用途的
static
/public
方法的类,例如处理数据库层的DataBaseHandler
,以及暴露通用方法的MainLogicHandler
。
图片密码
这部分背后的想法是,大多数键盘记录程序都会监控用户的按键和鼠标点击。如果用户在不安全的坏境下登录我的应用程序,他的登录数据将被记录。我的想法,是从一个旧的 Pocket PC 应用程序那里获得的,就是给用户一个选项,选择一张图片,并在图片上选择 4 个点,这样下次登录时只需要输入用户名。在输入用户名后,用户将打开密码图片,并点击预先选定的四个点。键盘记录器可以记录点击,但如果没有图片,它们将失去上下文。当然,有方法可以绕过它,但这只是一个想法。
安全
当然,在这类应用程序中,安全性非常重要。我的应用程序仍在发展中,目前还没有安全保障。下一版本将包含数据库密码保护,该密码将在代码中进行加密。注意 - 加密类已经包含在源代码中,但尚未投入使用。
用户界面
由于我喜欢处理 GUI 应用程序,一个漂亮的用户界面是必须的,所以在花费了大量时间进行颜色匹配和图标搜索后,我偶然发现了一个专门提供免费图标的网站——http://downloadpedia.org/Free_Icons_and_Buttons。
反馈请求
因为这是我在这里的第一篇文章,我将非常感谢任何反馈、评论、建议以及bug报告。如果您能在其他系统配置(尤其是 Internet Explorer 8)上报告使用经验,我将不胜感激。
在后续版本中
该程序的未来版本将包括以下更新:
- 改进的 WebLogin 检测引擎
- 安全和数据加密(在此版本中几乎完成!)
- 备份/恢复选项
- 导出到流行格式
- 迁移到 Access 数据库,以减小尺寸并免去需要安装 SQL Express 的麻烦
- 数据卡自定义图标
- 工具提示
- 来自用户的建议?
- 最后但同样重要的是:更少的 bug…
历史
- 2008 年 9 月 20 日 – 创建了文章,
SingleSimon
的第一个 Alpha 版本 - 2008 年 9 月 30 日 - 版本 1.1