65.9K
CodeProject 正在变化。 阅读更多。
Home

SingleSimon - 密码管理器应用程序

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.75/5 (8投票s)

2008年9月18日

CPOL

4分钟阅读

viewsIcon

48474

downloadIcon

2021

一款开源密码管理器,具有一些高级功能和精美的界面

main.gif

引言

SingleSimon 是一款密码管理器应用程序,除了在数据库中存储敏感登录数据外,还提供以下功能:

  1. 在用户成功登录网站后自动检索用户登录数据,并在下次登录时自动填充该登录信息。
  2. 通过使用个人数据集,一键填充整个网页表单。
  3. 存储通常放在“即时贴”上的任何类型的数据——密码、锁组合、软件序列号等。

该应用程序是我计算机科学学士学位的毕业设计项目,在以色列 MTA(特拉维夫学术学院)完成,指导老师是 Mr. Kirsh Amir。

背景

当我第一次想到将密码管理器工具作为我的毕业设计项目时,这听起来是个不错的想法,而且由于我只懂基础的 C#,这是一个很好的学习经验、熟悉 SQL 以及使用 DOM 环境的机会——尤其是钩子处理 Explorer 事件。

从这个项目开始,我尽量对代码进行了注释,希望能对新来者有所帮助。
该项目大约花了两个半学期。

Using the Code

要作为用户尝试该程序,请将压缩的可执行文件复制到任何文件夹,然后运行主 EXE 文件。帮助可以在“帮助”菜单中找到,也可以通过应用程序中散布的每个帮助按钮找到。
使用源代码非常简单——我尝试为大部分代码添加注释。
该程序要求安装 .NET Framework 2.0 以及 SQL Express Server 2005。

SingleSimon - 主要功能

市面上有很多密码管理器。我的产品有几个独特之处:

  1. 它是开源的——这意味着你可以直接使用它,或者根据自己的需求进行修改,甚至让它变得更好!
  2. 它让你完全控制填充网页表单的过程,这使得它非常适合在你的计算机后台运行,并用于节省时间和精力。
  3. 它拥有一个非常酷的界面!

主要代码元素

SingleSimon Main 的代码元素可以分为以下几类:

  1. 表单代码。每个表单包含其大部分代码。
  2. WebScanLogic 代码。这负责检测可填充表单和用户登录。
  3. FillEntireFormHelper 代码。这部分代码负责填充网页表单的算法。
  4. 共享类——暴露用于通用用途的static/public 方法的类,例如处理数据库层的DataBaseHandler,以及暴露通用方法的MainLogicHandler

图片密码

这部分背后的想法是,大多数键盘记录程序都会监控用户的按键和鼠标点击。如果用户在不安全的坏境下登录我的应用程序,他的登录数据将被记录。我的想法,是从一个旧的 Pocket PC 应用程序那里获得的,就是给用户一个选项,选择一张图片,并在图片上选择 4 个点,这样下次登录时只需要输入用户名。在输入用户名后,用户将打开密码图片,并点击预先选定的四个点。键盘记录器可以记录点击,但如果没有图片,它们将失去上下文。当然,有方法可以绕过它,但这只是一个想法。

安全

当然,在这类应用程序中,安全性非常重要。我的应用程序仍在发展中,目前还没有安全保障。下一版本将包含数据库密码保护,该密码将在代码中进行加密。注意 - 加密类已经包含在源代码中,但尚未投入使用。

用户界面

由于我喜欢处理 GUI 应用程序,一个漂亮的用户界面是必须的,所以在花费了大量时间进行颜色匹配和图标搜索后,我偶然发现了一个专门提供免费图标的网站——http://downloadpedia.org/Free_Icons_and_Buttons

反馈请求

因为这是我在这里的第一篇文章,我将非常感谢任何反馈、评论、建议以及bug报告。如果您能在其他系统配置(尤其是 Internet Explorer 8)上报告使用经验,我将不胜感激。

在后续版本中

该程序的未来版本将包括以下更新:

  1. 改进的 WebLogin 检测引擎
  2. 安全和数据加密(在此版本中几乎完成!)
  3. 备份/恢复选项
  4. 导出到流行格式
  5. 迁移到 Access 数据库,以减小尺寸并免去需要安装 SQL Express 的麻烦
  6. 数据卡自定义图标
  7. 工具提示
  8. 来自用户的建议?
  9. 最后但同样重要的是:更少的 bug…

历史

  • 2008 年 9 月 20 日 – 创建了文章,SingleSimon 的第一个 Alpha 版本
  • 2008 年 9 月 30 日 - 版本 1.1
© . All rights reserved.