一个初学者C#编写帐号密码保存软件的思考过程
实际需求:
1. 手头的帐号密码越来越多,为了安全(人肉,扫号),帐号密码各不相同,时间长了之后,记忆就是个问题。
2. 许多搜索的资源,比如网盘,论坛附件,都需要注册之后才能下载。
3. 越来越多的论坛必须使用邮箱注册,但是随之而来的垃圾邮件让人烦不胜烦,几年下来,甚至变成彻底的垃圾邮箱。
4. 一些游戏为了安全,会让帐号捆绑图片格式的数字矩阵,这些图片和帐号密码一样属于机密,但是往往公开存放。
现成软件,设置浏览器插件,都有,但是如avast出产的,那是需要钱的,也有各种免费的,但是并不放心,浏览器插件倒是不错,但是个人长期换各种浏览器使用,也不方便,所以决定自己写一个,也当作练手。
本质上,这类帐号密码保存软件,就是一个数据库+加密解密。数据库的考虑,因为只考虑到个人单机使用,并且需要方便转移,无需部署,以及个人的熟悉程度,选用了Sqlite3.加密的部分,单机,.NET的支持的原因,使用AES。目前想到这里,解决了需求的第一条和第二条,安全地保存检索信息。第四条就是需要支持数据库直接写入图片文件。以前初学使用access时,对于图片的使用,都是只在数据库里记录路径而已。现在学习后,熟悉了Sqlite支持BLob格式,可以将图片等资源以二进制的格式存入数据库。
现在只剩下第三条没有解决。第三条有些人可能没清楚,我细说下。比如要搜索某款软件的破解文件,或者要下载某手机论坛的一个文件,结果需要注册了才可以下载,并且只能用邮箱注册,那么设想有个软件能在瞬间产生一个临时邮箱供我注册和接受信息,之后永远不要再管,这样就不会污染常用邮箱了。注册一个专门用来注册的邮箱是个不错的选择,只是每次注册了之后,还得登录到这个邮箱去接受注册信息,稍微繁琐了点。
写几行代码,肯定不能完成这个功能,毕竟需要一个固定服务的邮件服务器。动用了我的哲学头脑后,发现为啥不能上网找找,看有谁提供这个功能,我拿来用好了,又不可耻。狂搜之后,找到了一个网站:www.nowmymail.com,简直就是为我量身定做的。点击一个按钮,自动生成一个随机邮箱,再点击检查邮箱就可以收邮件,邮箱存活时间为一个小时。本来想直接在软件里打开这个网页自己来点击,后来想能不能更简单。是不是可以将点击获取随机邮箱这个步骤交给软件做,我在软件上点击获取邮箱,网页返回的邮箱地址就直接到我软件上了。学习之,知道了需要抓包,再学习之,知道用HTTPAnalyzer,POST,成功POST信息,成功获取返回信息。接着使用Browser显示收件的网页,但是发现网页上有广告,就想着如何去掉广告。思考将读取的html文件处理后再显示,因为本身对html不熟悉,尝试后失败。再思考,去不到我可以将广告部分藏起来,于是将网页放在一个imag容器里,隔离了广告,只把有效的部分显示出来,这样就能清爽地接受邮件了。
我第一次发帖,还不如贴代码,并且个人水准很差,代码也很难看,于是就写一点思路和大家分享。
上面是主界面,可以保存帐号,密码,备注,3个问题和答案,还可以跟随一张图片
点击Generate后,可以立刻获得一个随机邮箱,注册后点击check mail就能获取注册信息,免去登录的苦恼,而且可以隔离垃圾邮件。
有需要的人我公开源码,可以改来自己用。
干脆直接公布源码地址:http://bbs.meizu.com/attachment.php?aid=1776316&k=57651f35734fded741a2444f720a2c9b&t=1323419351
密码是: abc@123