一名安全研究员发布了一份包含1000万条记录的用户名、密码文件。原文可见:Today I Am Releasing Ten Million Passwords
下载下来看看:
确实是刚好有1000万条记录
$ wc -l 10-million-combos.txt 10000000 10-million-combos.txt共有两列,分别是username、password
$ head 10-million-combos.txt 0000 000000000000 000010000 000011110000 0000990000 000099990000 0000w0000 59274990000 6342520000 69117030000 701068出现最多的100个username:
$ cat 10-million-combos.txt | awk '{print $2}' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | head -100 | awk '{print $2"\t"$1}' > top_100_username$ head top_100_username info 3044admin 2119michael 1323robert 11132000 1095john 1049david 1041null 967richard 940thomas 922按照出现频次,使用 作出标签图:
出现最多的100个password:
$ cat 10-million-combos.txt | awk '{print $2}' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr | head -100 | awk '{print $2"\t"$1}' > top_100_password$ head top_100_password 123456 55893password207851234567813582qwerty 13230123456781169612345 109381234 6432111111 56821234567 4796dragon 4191使用 作出标签图:
假设以上100个最频繁的密码就是大多数人使用的密码,那么对于任意的username,,只要试100次:
$ cat top_password | awk '{sum+=$2} END {print sum/1e7 * 100}'3.34714就有3%的概率登录成功。
michael作为出现次多的username,看看有多少个password中出现了它:
$ cat 10-million-combos.txt |tr 'A-Z' 'a-z' | awk '{print $1}' | grep 'michael' | wc -l8132下面看看username是michael,密码中还有michael的次数:
$ cat 10-million-combos.txt | tr 'A-Z' 'a-z' | awk '$1=="michael" {print $2}' | grep 'michael' | wc -l 23下面看看admin最喜欢用什么密码:
$ cat 10-million-combos.txt | tr 'A-Z' 'a-z' | awk '$1=="admin" {print $2}' | sort | uniq -c |sort -nr | head1 zzzz1 zzzsecurityzzz1 zzzsecu11 zykova331731 zxzz很遗憾,没有用相同密码的。
对于密码安全,有一段搞笑视频【需到墙外】,What is Your Password?
可是我要如何在浅薄的纸上为你画上我所有的命轮?