密码生成小思路

问题

常见问题:

  • 密码多不好记忆。
  • 密码强度不够高。123456abc和3d8af56,谁看起来更复杂。
  • 账号多。

人们往往有很多账号,就会有许多密码。注册新的账号时,也需要密码。人们往往使用的密码就那么几个,密码多了不好记忆。把这些密码记录到一个文件中是可行的,但如果在忘记密码的时候不能读到这个文件就很尴尬,而且这个文件放在网盘等网络存储媒介上也让人不是那么放心(当然你可以把文件加密后在放到网盘上)。

现在的账号通常是手机和邮箱,这些是好记忆的。那能不能通过这些账号来生成对应的唯一密码呢?

思路

单纯用账号生成密码是不安全的。而且一个账号也会在多个地方使用。所以用于密码生成的字符串还要再复杂些,同时要有规律,不然也不好记忆。

用于加密的字符串组成:

  • 网站简称,比如:CSDN、QQ
  • 账号
  • 密码

这里的密码是需要自己记忆的,但需要记忆的不多(比如记忆一个)。

我采用md5算法对上面的算法进行加密。MD5是摘要算法,即最后加密出的密文是唯一对应的(第n次加密和第n+1次加密得出的密文是一样的)。md5可能不是最好的选择,我的目的是保证每次加密后得到唯一的密文,还有很多算法都可以做到这一点。

按照上面的字符串组成规律,每个账号通过MD5计算得到的密文是不一样的(虽然MD5有发生碰撞的可能,即不同原文通过MD5计算得到的密文相同,但这件事发生的概率极低)。

把MD5计算得到的密文转化为16进制字符串,直接用这个密文作为密码(32个字符)可能会过长,可以只取其中几位。

有些密码可能还需要特殊字符和大写字母组成,可以在截取的密文中加上特殊字符。

总结

最后得到的密码对于人而言没有规律,比人们自己想的密码更不好记忆,但不需要人民记忆,唯一需要记忆的密码是用于加密的密码。这些密码可由账号、加密密码等关键信息重新计算得到。

密码生成器

网上有许多MD5网站可以直接用。

我自己用go语言写了个命令行程序,因为go可以直接生成可执行文件。这个程序完成了MD5计算、密文截取等简单功能。
demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值