现在好多人不想在每个网站都使用相同密码,他们又无法记住所有网站的密码。
本文提供一个简单的方式让大家可以轻松记住一个账户和密码,来得到对每个不同的网站有一个对应的密码。
本文还发在我自己搭建的博客: 生成密码,因为csdn的文章更新没有自己博客简单,所以如果想看更新的文章,请到我的博客去看。
当然自己的博客是放草稿的,如果文章写好了,我才发到csdn
这是一个生成密码算法。
首先是要求用户输入他要记住的账号和密码。
然后用户对他每个需要生成密码的网站,在程序输入域名。
接着就是选择生成的密码,有需要位数N,一般是6,8,10,16的长度。
然后就可以生成一段对应的密码。
生成密码的要求,就是用户需要密码包括的字符,一般有需要大写、需要小写、需要数字、需要特殊,我们把用于选择需要生成类型数记为n。也就是用户如果要求有英文大小写和数值,那么n=3。n用于生成密码中间变量,可以得到所有用户要求。
对于不同的域名可以生成不同的密码,除了域名,还可以使用其它的字符。那么算法的要求是对于不同的输入,很少会生成相同的密码。对于相同的输入,生成相同密码。
于是用户需要记住的就是他的账号密码,遇到了在网站输入,就输入网站,于是得到网站密码,这样可以让用户只记住一个账号就可以。
算法也比较简单,实现有点复杂。
算法:
可以分为3步,第一步是生成组合字符,第二步进行混淆,第三步生成密码。
第一步的作用是生成作为密码的字符,第二步是防止第一步密码过于简单,防止可以从生成密码计算出用户账号密码,第三步是核心,用于生成密码。
- 生成组合字符
第一步需要先计算中间的值,计算方法:
x=md5(账号+域名)
x1=md5(密码+域名)