编者按:昨天,乌云漏洞报告平台宣布网易邮箱漏洞过亿数据泄漏,数据达亿级别。阿里巴巴可视化工程师周宁奕(主攻 Webgl、海量数据可视化、地理相关可视化,曾在参数化事务所 hhd-fun 工作)写了一篇文章,讨论了下现在最常被使用的各种不合理密码,以及究竟什么密码才比较安全。
昨天,乌云漏洞报告平台宣布网易邮箱漏洞过亿数据泄漏,据说有亿级别的用户密码流出。现在网易官方与乌云各执一词,真相估计还需要时间,但小编反问,你的密码设计合理吗?
2011 年起有一系列重大网站密码泄露,csdn 社区、人人网、多玩网、微博的部分密码数据都被挂到了网上(数据请自行 google,本文讨论思路,展示结果,不泄露信息)。
我们以当时微博的3315156 条用户名密码数据,开始分析之旅。
工具(可以选择略过这段!)
而我们下载到的文件类似于 csv (逗号分隔) 或 tsv 格式(空格分隔)数据,如下:

数据很大,需要的查询可能很复杂,纯脚本处理很难胜任,我们需要数据库, 本文用 mongoDB。
我们可以在命令行里使用 mongoimport 命令导入数据,也可以使用脚本(我用 node.js)导入,脚本更灵活。导完后,可以直接在命令行(如 mac 的 terminal)查询:
以上,括号里面的叫查询条件,这在本文中很重要,我们可以在查询条件里插入正则表达式(网上资料大大的),让查询变得更复杂:
最后,有时候我们要统计,比如密码以 a、b、c、d..,各有多少,这时我们需要用 mapreduce 进行累加。
嘿嘿,工具只是手段,白猫黑猫,能抓老鼠的就是好猫。
让我们启程!
密码top 100
首先跑出重复率前 100 的密码, 以下是前 20:
很容易发现规律,俺将密码主人分五大派系:
极懒派手势派规律派手机派生日派情感派
一、极懒派
这 3 万多同学真是懒的令人发指,也刷新了哥的常识,喝喝…
1. 那时候微博竟然能通过一个字的密码。
2. password 也是老外的高频词,我不知道是不是某些网站输入框里 password 提示词,或是很多设备默认密码是这个。
3. 单字重复型,如 11111,让我们深入发掘下。
4. 最有意思的是 163.com 和 @qq.com 出现的频率,而这 1000 多用户,密码=用户名后半部分… 醉了
极懒派之 一字重复 n 次
统计形如 ‘aa’, ‘11111’, ‘ssssssss’ 这类若干个相同单字的密码总数:
我统计了 1、2、3、4、5、6、7、8、9、0、q、a、z、w、s、d 的频率分布,其中用 11111 型的用户最多,这些密码总计 6w 多人,占 2%。
极懒派之 用户名=密码
上述统计不包含用户名和密码相同的密码,这部分密码共有多少呢? 以[emailprotected]为例,我们统计[emailprotected]/ abcd / @qq.com 这 3 种模式的数量之和:
99671 个人,有点意外,整整占了 3% 呢!#p#
二、手势派
密码太长,能在键盘上排成一种形状,记忆成本就大大压缩,在密码排行榜上,和图形有关的密码是哪些? 123456 云云者,勉强算吧,在数字键盘划一字。同理 qwerty 开头的也是这个原理。
对此,我看到一位老外很牛逼地总结了 20 种模式:
这个模式很牛逼,图上是键盘密码。但 11年 已经有很多人用手机上微博了。有不少这种手机键盘:
因此很多密码的原理就迎刃而解了:
三、规律派
记住一串数字的规律,我们就可以把一串简单的数字演绎成复杂密码,而你记住规则就好。
很勉强,123456 就是个等差数列 fn = n 而 13579 是 fn = 2*n-1
很多人会用叠词 如 123123,112233,或叠加后对称 123321 。
高分密码有这些:
可以引申下,同样是数列,用了中学知识就不一样啦,假设我们让 fn = n^2, 我们就可以构造一个数列了:
1 2 3 4 5 6 -> 1 4 9 16 25 36…
我查询了含有 1491625 的所有密码,共找到 30 几个,真是海内存知己(因为曾经我也是这么设计的)
同理 1 8 27 64 125 的只有 3 个人,高手啊
如果你拿 12345 开根号、取三角函数、取对数,忘记密码,在手机计算机里算一遍(别忘了公式)。
海内无知己,天涯只有你,你赢了!
四、手机派
使用自己和亲人的生日、电话、手机做密码,已是我对普通密码的印象了,这部分人究竟多不多?
用手机做密码,一开始我设置了 11 位的数字的条件,但是有很多错误的结果。好在网上有对手机号码检测的正则表达式,包含了 2013年 前所有的手机字段:
移动:139 138 137 136 135 134 147 150 151 152 157 158 159 178 182 183 184 187 188
联通: 130 131 132 155 156 185 186 145 176
电信: 133 153 177 180 181 189
虚拟运营商:170
因此大哥整理了一个可以查询手机号的正则表达式:
亲测有效哦,出来的密码几乎都是手机号, 172418 个同学用手机号做密码 占比 5%。#p#
五、生日 / 纪念日派
我们查询所有包含年份的密码,这些年份都以 19 和 20 开头,且有 4 位连续数字, 考虑到 5201314 (我爱你一生一世) 也是高频密码,且密码数据的时间为 2011年,此时 2013 不该出现,所以排除 2011年 以后的年份,我们得到如下结果:
543559 个密码使用了年份,占总量的 18%。 真不是小数字,但数据还是很复杂,有大量年份和字母,符号混合的,也不一定就是年份。那我们缩小范围,如果包含生日的有多少人?
月份比较复杂,1月1日 出生的,也许写 11,也许写 0101,也有 1.1、1-1 的。但后者其实比较少,且在在一篇分析人人和 csdn 密码的文章里看到 YYMMDD 型的生日是最多的:
那我们的查询如下:
318022 个密码符合条件 占总量的 10%。
这批密码还是颇为复杂,因为很多人在字母和其他数字后加入生日的,仅以生日作为密码的人会有多少?
答案是 137697, 4%的人用自己生日做密码,而其中,也有些奇葩的答案,如好几个 19190504。我去,这是 xx 团委的公众号么…
六、情感派
写一句有含义的密码,写什么重复率最高?
现实里压抑的我们难得一说我爱你,不论国内国外,都有很多人对着 服务器 许愿,说出 wo ai xx,这些我爱你型密码的总数让我非常震惊。
这份密码数据里,woaini 以 2659 次重复荣居意义型密码榜首,iLOveyou 则不到 woaini 的一半。 但事实上文字版的都弱爆了,位居第五名的 5201314(我爱你一生一世)有 15000 个人同时使用,还有各种变体…其中第 13 名最缺爱 7758521(亲亲我吧爱我吧)
除了我爱你,我还爱谁? 让我们查询任何含有 woai(我爱)的密码,还是基本都是在各种爱你… 偶尔有 woaiwojia woaishui woainima… 有意思的是我爱我家,这中介公司的名字取得真是合理。
如果我们查询含有 ‘wo’ 字的密码,也会发现我最喜欢做的事情就是爱 xx… 除了爱你,我还爱谁呢,老公、老婆、妈妈、爸爸?…
woailaopo + laopowoai 的人数有 291 人 。
laogongwoai 和 woailaogong 的人数有 98 人。
这些都是少数派密码了。
我们试试我爱妈妈 (201) 和我爱爸爸 (60) 的比例,竟然也是 3:1。
出于好奇,我又统计了密码里包含’ laopo’ 的和包含’ laogong’ 的比例:
老公: 454
老婆: 1118
包含老公的密码基本都是形如: ‘zuiailaogong’、 ‘qinaidelaogong’、 ‘pplaogong’,我擦看不下去了,真是一部 show 恩爱宝典…
爱老婆的数量还是完胜,可惜,这是一组良莠不齐的密码, 还是有不少形如 laopo38、 laoposhizhu choulaopo laopocaolei sblaopo777 的密码…(总数还是不算多)
相反,骂人的人比例很少,fuck shit cao 说的人都不算多。而这其中,也有些有趣的点:
鲁迅在杂文《论他妈的》中说他妈的是中国的国骂,但是时代变了,也许是受了上古十大神兽草泥马(当年暴走漫画王尼玛还没火吧),nima 的频率 2714 次远高于 tama 101 次。也完胜 ‘fuck’、 ‘shit’、 ‘wocao’ 这些 400-500 次之间的词。
用什么字做密码最安全
我不是黑客,不知破解算法是怎么做的,但只要键入一个字,就让你的密码与众不同,你会怎么敲? 我们对密码里用到的所有字进行统计,得出下图:
1 是第一名,被 300 多万用户累计输入 300 多万次,1 是一个很有趣的数字,超过 60%的人密码会用到 1,而 30%的人会以 1 作为密码开头, 可以看到’.’ ‘@’ 等特殊字符,在符号里排名很靠前。曾经看到说用’_‘在密码里较为安全,因为比’-‘少,事实上也的确如此,但你何必按 shift 打_号呢,’,’的比例比前面所有的标点符号都少。
我们可以看到,数据下降非常快速,有规律可循吗?将柱状图的大小全部取对数,那么四大阵营的阶梯形一览无余: 1-9 排在了所有的字母之前,几乎所有的字母排在了大写字母之前:
最后,纠正一个数据错误,我们看到 ‘E’ 和 ‘+’ 的比例非常异常,他们理应没有那么多,为什么?
好,看到这里,你应该觉得很熟悉, 5201314,123456, 都是熟悉的密码,而 E+13 这种也很熟悉。excel 里输入一个长度超过 11 位的纯数字,excel 会自动将数字转化为这个样子的。这份数据应该是被谁用 excel 打开后又保存了,所以,大写字母最多的应该是 ‘A’,而 ‘+’的用量也排不到符号类的第二名。
你的密码安全吗
回到 2011年,我在微博上找一个邮箱,然后破解你的密码,哥成功的概率有多大?
前 100 名的密码,第一名的密码 123456 共 165882 条,占 5%。前 10 名的密码有 316085 条,占 10%,而前 100 条密码共 442555 条,占 15%
累计 15%的人能被这 100 个密码破解。
用户名和密码匹配(包含之前提到的前缀相同,后缀相同和 后缀 +@ 相同)共 99671 人。
累计计 18%的用户都会在 103 次穷举后被破解。
近 100年 的生日有 365*100 个,如果我遍历那么多次,总有一个是对的,这样我可以破解 4%的密码。
累计 22%的人已经被破解。
倘若我知道你的手机号码,5%的人的密码会被破解,累计 27%
如果我知道你的名字 (这份数据无法分析你的名字和密码的关系) 这个比例会更高。
2011年,1/3 的人密码是不安全的。
你觉得你的密码设计的科学吗?
参考:
[ZIPF 分布、PARETO 分布和幂律分布]
[CSDN 及人人网的用户密码分析]
[最新手机号码验证正则表达式]
“剑鱼行动”指的是什么意思?
军事行动的代号
如何选购贵妃翡翠手镯?想给老婆买一个。
选择翡翠手镯还应注意翡翠手镯的鉴别。 1、选翡翠手镯时要认真观察手镯是否有裂纹(指次生的断裂纹,常为横向分布),要对每个翡翠手镯正面、反面、内侧、外侧作全面观察,尤其要注意缝住翡翠手镯的红线遮挡处有无裂纹或破损,因为严重的裂纹是手镯的致命伤。 2、要用敏锐的目光找出翡翠手镯的瑕疵(包括翡翠手镯上出现的黑色或黄色斑点,白色“石花”及原生的并非断裂的玉纹);同时要注意翡翠手镯的形状是否很园,条径的粗细是否均匀一致,抛光是否过关等。 3、要注意翡翠手镯圈口的大小和条径的粗细是否符合需要,这与购买者的胖瘦和年龄有关,如中老年人喜欢稍粗的条径,而年轻人则钟爱细条。 4、好的翡翠手镯应是“有种有色”。 “种”指玉质的细嫩晶莹和透明度;“色”主要指翠绿色,若为美观的紫罗兰、花青或别致的 “三色玉”或“四色玉”也不错。 总的来说,应该牢牢记住下面四句口诀:先查裂纹防致命,瑕疵要少工要精,大小不符难成交,“有种有色”方精品。 在选购翡翠手镯时,要测试你需要戴多大的圈口并不难,主要有两种情况:1、购翡翠手镯者本人在场时,只要将翡翠手镯能戴入4个长手指(即大拇指除外)至“虎口”处,感觉稍紧一些,然后将翡翠手镯取下,测量一下内径,例如刚好是55毫米,那么,这个尺寸就是你适合的圈口了。 如果你喜欢松一点,就再加大1-2毫米,便可轻易地戴上或取下了。 有人喜欢戴小一点的翡翠手镯,甚至戴上就不打算再取下了,那就可将上述尺寸再减少1-2毫米,并当场试戴。 试戴时涂些洗洁精或肥皂水在手上,请别人帮忙,用力将翡翠手镯戴进手腕即可。 2、购货人本身不在场时,最好知道其本人所需翡翠手镯的尺寸大小,有些人在家中用小绳将手腕围一下,然后请别人带着小绳去选购翡翠手镯,这样是很难准确的。 从颜色来讲,年轻人喜爱偏浅,中老年人则喜爱较深色调的翡翠手镯,青年女性多喜爱有红有绿的芙蓉种,浅绿花青种和艳丽的紫罗兰翡翠手镯。 中年女性则喜欢浅色的绿豆青,油绿和浓艳的紫罗兰翡翠手镯。 老年人最喜欢紫罗兰或翡红加上翠绿和白色的“福禄寿”三色翡翠手镯,经济条件较差的则喜爱偏暗绿的绿豆青,油绿和瓜皮绿等绿色翡翠手镯。 此外,具有明显翠绿的白地青翡翠手镯几乎受到普遍喜爱。 玉器商人有一句口头禅:“无纹不成玉”。 这句话具有一定道理,如用10倍放大镜或肉眼仔细观察一个翡翠手镯时,有些小小的玉纹(又叫玉筋)是不足为奇的,这些玉纹除有损玉器的美观外,对坚固性是影响甚微的。 裂纹则是另一回事了,它是在玉石开采、运输、加工或保管过程中,由于爆炸、敲击、震动或跌撞而形成的次生裂隙,这些裂隙常具有明显的裂口,甚至用指甲即可刮碰到。 裂纹的颜色往往是黑色或黄褐色的,有了这种裂纹的手镯虽然不会马上裂开,但却潜伏着容易断裂的危险,尤其影响美观,给人一种不完美和不痛快的感觉,影响销售。 选购贵妃翡翠手镯就去博宝网宝珍商城看看吧,那里的不错。
送给女朋友两本书,分别是《平凡的世界》《白鹿原》赠言怎么写?
个人觉得这两本书就不适合送女友平凡的世界》是中国著名作家路遥创作的一部百万字的小说。 这是一部全景式地表现中国当代城乡社会生活的长篇小说,全书共三部。 作者在中国70年代中期到80年代中期近十年间的广阔背景上,通过复杂的矛盾纠葛,以孙少安和孙少平两兄弟为中心,刻画了当时社会各阶层众多普通人的形象;劳动与爱情、挫折与追求、痛苦与欢乐、日常生活与巨大社会冲突纷繁地交织在一起,深刻地展示了普通人在大时代历史进程中所走过的艰难曲折的道路。 白鹿原》是陈忠实的代表作。 这部长达近50万字的长篇小说,是陈忠实历时六年艰辛创作完成的。 小说以陕西关中平原上素有“仁义村”之称的白鹿村为背景,细腻地反映出白姓和鹿姓两大家族祖孙三代的恩怨纷争。 全书浓缩着深沉的民族历史内涵,有令人震撼的真实感和厚重的史诗风格这两部小说都不和爱情沾边,如果非得送个人建议你两个方法1. 简单直接的表达你的爱意,做成书签,放入书中却不给他说里面有你的书签2. 将你写“在平凡的世界里,有你,我便安心”放入《平凡的世界》至于白鹿原 还是建议不要涉及,不信你可以自己看看书中内容,特别是白鹿原前几章节 写主人公死老婆死了一大堆
发表评论