2014年8月19日 星期二 雨
话说这多年前写了一篇《CSDN密码泄露和密码安全 》,谈了我的密码规律。
lasspass,虽然没有被攻破掉,但我也不想用。一是我在单位很慢,二是我觉得存储用户名和密码在网上不安全。
我最近就是在google doc记录了网站名和用户名和密码提示。重要密码基本上一个月一换,大小写特殊字符混合,长度足够,比如淘宝密码。
之前还看到有人想到用Pi或者e等无理数来记密码的,我看的不是很仔细,也不太理解,我想就是只记住一位数,然后从Pi的第几位数开始连续几位都是密码?
我的主要思路是: newsalt = salt + 用户名+ 网站,用newsalt去加密出密码。其中newsalt和用户名(可以马甲)可以说由用户输入的,用户不存储任何信息在网站里,而是另外存储在别的地方,也可以固定存在网站里。
想到就动手了,就是花了10分钟时间,主要工作量还是在调试html页面上,代码工作量忽略不计。后续我稍微改改算法,就自己用了。这种功能,给其他人是不敢用的。
演示网址:http://toy06.sinaapp.com/genpw/
下面是Tonador的demo,其中算法只是简单用了md5,也可以用其他的,salt也可以更改。
[code] from hashlib import md5 class GenPsw(TbHandler): def get(self): self.echo(‘genpsw.html’,{ ’title’:u’密码生成’, ‘description’:SITE_DECR, ‘specialcss’:EXAM_BASE_CSS, ’newpsw’:’’, ’errors’:[], ’name’:’’, }) def post(self): username = self.get_argument(“username”,None) domain = self.get_argument(“domain”,None) if username and domain: salt = ‘oDvf@25De7337593sd+dsfsd?>N’ pw = ‘%s%s%s’ % (salt,username.lower().encode(‘utf-8’),domain.lower().encode(‘utf-8’)) newpsw = md5(pw.encode(‘utf-8’)).hexdigest() return self.echo(‘genpsw.html’,{ ’title’:u’密码生成’, ‘description’:SITE_DECR, ‘specialcss’:EXAM_BASE_CSS, ’newpsw’:newpsw, ’errors’:[], ’name’:’’, }) return self.redirect(’/genpw/’)[/code]
...