一名安全研究员发布了一份包含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 00000000 0000 00001 0000 00001111 0000 000099 0000 00009999 0000 0000w 0000 5927499 0000 634252 0000 6911703 0000 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 3044 admin 2119 michael 1323 robert 1113 2000 1095 john 1049 david 1041 null 967 richard 940 thomas 922
按照出现频次,使用http://worditout.com/ 作出标签图:
出现最多的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 55893 password20785 1234567813582 qwerty 13230 1234567811696 12345 10938 1234 6432 111111 5682 1234567 4796 dragon 4191
使用http://worditout.com/ 作出标签图:
假设以上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 -l 8132
下面看看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 | head 1 zzzz 1 zzzsecurityzzz 1 zzzsecu1 1 zykova33173 1 zxzz
很遗憾,没有用相同密码的。
对于密码安全,有一段搞笑视频【需到墙外】,
What is Your Password?
时间: 2025-01-01 16:03:17