来源酷安:笨章鱼舰长
副标题」来自某萌新的密码学杂谈
文字预警,本文全文共计3160字符,并且配图极少,请大家酌情阅读,并且不必担心流量问题。
这里是前言哦!
当下的时代是一个互联网的时代。无论是各式各样的的社交媒体,亦或是生活缴费网上支付等一系列辅助软件,它们都离不开一个重要的东西——密码。密码是个好东西,足够多样化和复杂的密码可以很好地保障我们的账户和财产安全(说着低头看了看只有三位数的余额,mdzz)。并且安全起见,很多人或者手机的安全提示都会让我们尽量给每一个账户设置不同的密码,避免某些不法分子一人得道全盘木大(不是)。
然而,随着我们拥有的账户越来越多,如何科学地为每一个账户设立足够安全又足够好用的密码逐渐成了很多人倍感困扰的问题。这期间,密码管理类的应用软件应运而生。好的密码管理类软件确实可以带来很多方便,而且可以在一定程度上保障我们的密码安全。然而软件毕竟是身外之物,很多时候遇到软件失灵等意外情况,需要我们手动输入密码时,估计多数人还是会选择点击另一个名为【忘记密码?】的神奇海螺(不要问我怎么知道的,我不想说。)
心 肺 骤 停
因此,我们的目标是,通过一系列尝试,摸索出一种科学、系统、可持续化的密码编写方案,它需要达成的目的有:
1.所有的密码都必须和你并且只和你本人存在某种特殊联系,必要时只有你自己可以通过某些方式回忆起来;
2.密码的编写必须拥有一定的内在规律,不能“东一榔头西一棒”地四处散落,避免某一个或者某些密码的画风突然跑偏,导致根本回忆不起来;
3.密码的编写最好具有可持续性,比如zy01、zy02、zy03……这种,可以长期持续地编写下去,以适应越来越多的应用之需;
每一个应用程序和密码最好有着一对一的联系,比如看到QQ就能想到QQ的密码是001之类;
4.其他更方便我们编写和使用密码的特性。
为了达成这一目的,我凭借我仅仅几个小时的密码吧冲浪经验,觉得需要适当用到一些密码学的知(皮)识(毛)。那么,让我们正式开始教学!
(首先声明,为了便于教学,本文采取的都是密码学中最为简单的方法举例,大家自己实践的时候可以稍微复杂一点,更能降低被破译的可能性。)
这里是第一个大标题!
我知道很多人设置密码都有这样一个习惯。他们会选择以自己的姓名和一串数字相结合的方式来设置密码。比如:zy200109。zy就是姓名缩写,200109则是生日的日期数字。这样的密码固然很好,因为它既有数字和字母的组合,又可以让你一目了然,一看就知道“这是你的密码”。然而这也使得这样的密码变得极其容易被破解。稍微知道一些你的信息的人(别看了,真有人觉得现在姓名和生日还是秘密吗?)就可以轻松破解。
那怎么办呢?
最简单的思路是,加密。当然加密的方法有很多,比如维吉尼亚密码,凯撒密码,栅栏密码等等……你可以选择一种你喜欢的加密方式,比如把你的出生年月统统加上你的出生日期的个位(当然个位是0就算了哈,可以取十位),例如我们取“5”,这样,原本的200109就变成了755654(这里的“9”因为满十进位,所以我们仍然只取个位)。
数字完成后,字母怎么办呢?可以借助字母在26字母表中的位置来进行,比如a就是01,b就是02等等。进行相应的运算后再换回字母即可(超过26的可以减去26再转换)。还是以“zy”为例,z是26,y是25,各自加上5,再减去26,得到5,和4,变成了ed。
这样一来,原本的zy200109就变成了ed755654,看起来和你的姓名生日应该没什么关系了。
再者,如果还不放心的话,可以加一些东西。比如大小写、字母、你喜欢的符号等等(当然,人家软件得让你加才行)。比如常见的“_”符号,就是可以的。这样,我们的密码就变成了Ed_755654,是不是看起来更有感觉了。
不过,到目前为止都只是最简单的例子,大家自己做的时候可以添加更多的元素,比如依照你的幸运数字把_放在一些奇怪的地方,变成Ed755_654甚至是Ed_755_654,又或者改变你的加密方式比如转化字母的时候用上ASCII码表等,甚至是进行多次加密,都可以大大增加密码的安全性。并且,由于其本质上是由最初那个zy200109变换而来,所以你应该不会轻易忘记它。
当然,你还得牢牢记得加密的过程是怎样的,不然还是快进到【忘记密码?】(笑)。
噔 噔 咚
这里是第二个大标题!
前文我们讲述了如何构建一个足够安全的密码,现在我们来解决如何让这个密码拥有“可持续性”。毕竟,你不可能把所有的密码都设置为Ed_755654,这无异于自杀。在这里,我介绍一种最为简单的方式。
我们以三个应用为例。QQ、微信、酷安。那么我们需要给他们三个都编写合适的密码。
首先第一步,编号。
用你自己喜欢的方式给需要设置的引用程序编号。比如QQ、微信和酷安分别是01,02和03。
把它们加入到你之前构建的密码中去,加入到哪里无所谓,喜欢就好。这里举例:Ed_75565401、Ed_75565402、Ed_75565403。这样就得到了三个不一样的密码。到了这里,如果别人不知道你心目中的“顺序”的话,基本不要可能轻易猜出每个软件的密码是什么。哪怕破解了其中一个,也很难得到另外的几个。但你就不一样了,因为预先知道了它们的顺序,所以你可以很轻松地明白它们的密码是什么。
当然,如果你不放心,可以对它们再加密一次。本着不易遗忘的原则,加密的秘钥最好是和你有关的、随时看得见的东西。比如日历。
前文我们假设了你的出生年月是200109,那么可以把日历翻回2001年的9月,QQ的编号是01,在01年9月1日是九月的第【1】个星期的周【六】,那么好,01就变成了16。
这样,可以得到密码Ed_75565416。是不是更没什么规律了?
分别加密剩下的两个,得到三组密码:Ed_75565417、Ed_75565421,分别可以作为微信和酷安的密码。如果还有其他的账户需要注册,则可以按照03、04、05的顺序依次向后,再各自加密。由此便可以得到很多互不重复的密码。
这里是第三个大标题!
经过前两个章节的一番“操作”,我们的密码已经从最初zy200109的“小萌新”变成了Ed_75565416的“小菜鸟”(呃……因为加密过程很简单所以确实很菜呀)。
这离一个真正可靠地复杂密码还尚有距离,但是你已经掌握基本的方法了,至少可以自行编写属于你的一套密码。
不妨再看一下我们的初步成果,Ed_75565416,它可以分为这几个部分:
姓名缩写(加密)Ed,特殊符号@,生日年月(加密)755654,以及非重复编号段(加密)16。
抛开花里胡哨的部分,它本质上还是zy200109,这是你最初的“明文”,它和你有相当紧密的联系。
加密过程所用的工具基本都是你的生日日期等等,只需要记住这个“秘钥”,你也就记住了密码的规律。最后,非重复字符段是你必须额外记住的“秘钥”,它决定了“这个应用为什么会对应这个密码”,当然每个应用为什么是这个编号可以由你决定,你可以选择你喜欢的一张有序表来自行编写和加密。
记住了这几点,你就记住了这份只有你能够记住和还原破解的“密文”,没有得到秘钥的别人只能盯着一串意义不明的数字发呆。
当然,如果你想要你的密码更加可靠,以下改进方案可以帮到你:
1.加长编号段的长度,每增加一位,对方破解的概率就会缩小十分之一;
2.进行多层加密,比如把一次加密得到的密文再次加密,经过多次加密之后的密码会更难破解,(前提是你得记得你是怎么加密的);
3.引入动态密码,比如把之前例子中加密过程中提到的出生年月改成你当前所处的年月,每个月更新一次,常换常新,也是一种不错的办法;
4.增加更多的“可变元素”,比如_字符,就不一定非要出现在固定的位置,它可以根据某种规律而在密码串中自行变化;
5.增加更多的字符。比如,你觉得是Ed_75565416好破解一些还是E_d7#554%5$6好破解一些呢?当然,你自己得记得才行;
6.选择合适的加密方式,尽量不要和本文举例一样单纯的加减乘除,不然的话会保留某些规律。比如200109和755654,后者很明显都保留了生日年月的特点,恶意者很可能通过这些字符的重复来推断出原本的密文是什么;
7.善用手边的物品,比如电脑键盘,手机九宫格输入法等,都是简单易懂的秘钥;
8.为了应对不同软件的限制(比如只支持纯数字类的),可以把这鞋软件归纳整理,一类软件用一套密码进行归类,以方便使用;
9.自行学习更多比游戏还刺激~的密码知识。(笑)
这里是结语哦!
之所以会想写这么一篇文章,是因为就在刚刚我又被迫【忘记密码?】了一次,想起以前自己在密码吧冲浪的经历,觉得应该可以做点什么来改变这一现状。当然,我的这边文章绝对不专业,是菜鸟中的菜鸟,所以有很多不准确甚至错误的地方,还是要请各位老哥多多包涵呀!
不过至少通过这篇文章,可以给困在各类密码管理软件中的大家一种可行的思路,相信广大神思敏捷的酷友都能找到属于自己的合适方法!
暂无评论内容