简单实用的密码技巧,人人适用

一直以来我都是只记住自己的 google账号,淘宝账号,腾讯微信账号(相信很多人都跟我一样,只能记住这几个账号)。然后用 chrome浏览器登录google账号,记住且同步其它网站应用的账号密码,换机的时候也可以通过同步账号数据拿到密码。

但难保有忘记、缓存过期的时候。 我自己账号密码众多,百十来个账号密码应该是有的。于是一直想把账号密码记在本子、记在手机通讯录里。但是又怕不安全,本子容易丢失,或被别人看到,手机通讯录对于app,手机,bat等肯定是透明的。(当然你也可以购买一些服务解决这些问题,如:lastpass 1password)。

于是我思考有没有一种方法,能写在纸上,通讯录上,即便他人看到了,也看不懂。

起先,我想着要不要做一个密码对应表, 比如说:用A表示Z,用B表示Y…但是如果做一个这样的表,大脑没办法快速的解码,自己也看不懂,不是好的方法。


有一天我在写一个小的用户系统,在给密码加盐时,觉得加盐是简单可行的方法,就试验了一下,感觉非常直接好用。当然我相信这个方法大家都很容易想到,所以不要笑话我。

先说一下什么是盐,维基百科是这样解释的

盐(Salt),在密码学中,是指在散列之前将散列内容(例如:密码)的任意固定位置插入特定的字符串。这个在散列中加入字符串的方式称为“加盐”。其作用是让加盐后的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。

在大部分情况,盐是不需要保密的。盐可以是随机产生的字符串,其插入的位置可以也是随意而定。如果这个散列结果在将来需要进行验证(例如:验证用户输入的密码),则需要将已使用的盐记录下来。

简单来说是把你的密码分成两部分,一部分是不加盐的部分(这部分可以写在纸上),一部分是盐字符串(放在自己的脑海中),通过自己定的规则插入到不加盐的部分。

几个重点:

  • 盐一定不要太简单,也不要太长。太长不利于记忆
  • 盐的位置不固定,根据账号或密码的特性(如长度,数值)卡在不同的位置,这些规则你来定
  • 盐可以有1-3个,不同类型网站不同盐,也可以同时使用多个盐
  • 固定盐,盐重要,规则也重要
  • 勤换密码,定期改规则

例子1:

比如我老婆叫 gakki, 拿她的名字做盐。

我在某网站的账号名:myname

密码无盐部分的为: pwd@xxx.com

规则为:当用户名的长度为偶数时,盐放在无盐部分的正中间或者正中间的左边,否则放在账号的最前面。

因为“myname”字符长度为偶数,而无盐密码中间位为x ,所以真实的密码应该是: pwd@xgakkixx.com。

当用户名为奇数是,如“admin”,那根据规则,密码应该是: gakkipwd@xxx.com


例子2:

前面举了单个固定盐的例子,也可以用多个盐。巧了,我还有个小老婆叫masami.

规则:

  • 当用户名长度小于或等于8位时,无盐密码前面添加大老婆盐gakki.
  • 当无盐密码长度小于或等于8位时,无盐密码后面添加小老婆盐masami.
  • 当真实密码长度大于18位时,自动截断多余的字符

账号名:myname

无盐密码: mypassword

真实密码为:gakkimypassword


账号名:myname

无盐密码:password

真实密码为: gakkipasswordmasami(i超过了18个字符,被截断)

 

参考资料: