针对Vimperator的PasswordMaker插件

富辰阳
2023-12-01
前几天在[url=http://www.iteye.com/news/16145]JavaEye主页新闻[/url]上看到PasswordMaker,我非常喜欢它的思想,但不喜欢它提供的Firefox插件,于是我就将它移植到Vimperator下,我更喜欢Vimperator的命令行操作。

对于不熟悉PasswordMaker的朋友,我很乐意讲一下它的原理。相信大家和我一样,在很多网站上都注册有账号,大部分网站的用户名和密码都一样。这样做有很大的风险,因为这意味任何一个网站都能获得你的用户名和密码,然后使用相同的用户名和密码在其它网站上登陆,如果你在其它网站上有注册,那么成功的几率会很大。解决方法很简单,就是不同的网站使用不同的密码,甚至使用不同的用户名,但几乎不会有用户这么做,因为记忆的成本太高。一种方法是使用一个密码管理器,由它管理所有密码,要通过主密码来查看其它密码,这只需要记住一个主密码,减少了记忆成本。但是它需要你安装一个客户端软件,并且操作不便。当你从其它电脑上访问,可能就会傻眼了。你可以将所有密码保存第三方网站,但是你又如何能信任这个第三方网站?这似乎是两难问题,但PasswordMaker很好的解决了这些问题。要使用PasswordMaker,你需要记住一个主密码,然后用这个主密码和网站的URL(当然还可以附加其它一些参数)做hash,得到就是这个网站的密码。Hash算法一般使用MD5或SHA算法,由于Hash算法是单向的,所以不能通过网站的密码来获得你的主密码。

对于Firefox、Chrome和Opera用户(貌似没有IE),可以直接使用PasswordMaker提供的插件来进行计算。我比较喜欢Vimperator下的命令行操作,所以打算为Vimperator写个PasswordMaker插件。当然写之前,我会google一下看有没有,結果是没有,Vimperator下的插件还是比较缺乏。不过幸好PasswordMaker的生成密码算法有JavaScript实现,所以我做的基本上只是Copy/Paste工作,我只留下MD5和SHA256的Hash算法,将其它算法都去掉了,因为用不着。我的工作基于这个[url=http://passwordmaker.org/passwordmaker.html]online[/url]版本。插件的使用很简单,在命令模式下输入:

:pm YourMasterPassword [Website URL] [Modifier]

只有主密码是必须的,Website URL如果不输入的话会自动从当前URL中提取,只会提取域名的最后两部分,例如对于"http://mail.163.com",默认的Website URL为"163.com"。Modifier用于改变Hash的結果,这在你想定期更改密码时非常有用,Modifier可以为任何字符串。

还有一些配置参数:

let passwordmaker_hashAlgorithm='sha256' # Hash算法,只能为md5和sha256,默认为md5
let passwordmaker_passwdLength=12 # 生成密码长度,默认为8
let passwordmaker_modifier='xxxx' # 默认的Modifier,不指定是为空串
let passwordmaker_charset='...' # 生成的密码字符集,默认为ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()_-+={}|[]\:";'<>?,./


建议重新设置hash算法,密码长度,默认的Modifier,这样别人更不可能破解你的密码。

插件的一个问题时当输入主密码时是明文显示的,我还没有找到如何不明文回显密码的方法。
 类似资料: