1000万条用户名密码数据概览

一名安全研究员发布了一份包含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?

时间: 2024-08-18 09:09:25

1000万条用户名密码数据概览的相关文章

QTreeView处理大量数据(使用1000万条数据,每次都只是部分刷新)

如何使QTreeView快速显示1000万条数据,并且内存占用量少呢?这个问题困扰我很久,在网上找了好多相关资料,都没有找到合理的解决方案,今天在这里把我的解决方案提供给朋友们,供大家相互学习. 我开始使用的QTreeWidget 控件来显示我的数据,发现该控件在显示10000行以下的数据还可以应付的过来,但超过10000条,就明显感觉到屏幕刷新就会有卡的现象,而且占据内存很大,虽然操作起来简单方便,但灵活性没有QTreeView强大.因为我要显示的数据量是非常大的,甚至过1000万,因此,采用

如何快速的将已知的1000万条数据插入到数据库中

首先,可以定义1个1000万次的循环,每次循环插入1条数据,当1000万次循环全部执行结束,则插入完成! 也可以使用1条INSERT语句插入多条数据,例如: INSERT INTO t_user (username, password, age, phone, email) VALUES ('user01', 'password01', 11, '13800138001', '[email protected]'), ('user02', 'password02', 12, '138001380

再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化

继上篇文章<绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来>发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万级数据库表在高并发访问下如何进行测试访问 这篇文章的知识点如下: 1.如何自写几十行代码就能模拟测试高并发下访问千万级数据库表 2.比较高并发下(200次/秒,2000次/秒,10000次/秒)数据库的性能 3.比较千万级数据库在查询时加索引与不加索引的巨大差异(说实话,这个测试结果让我自己本人也很惊讶) 针对上篇文章插入的1000万条数据

Fundebug累计处理1000万条错误事件!

摘要: 上线半年时间,Fundebug累计处理1000万条错误事件.10000000啊! 自从去年双11正式上线,Fundebug已稳定运行半年时间,为600余个开发团队提供全栈JavaScript错误实时监控服务.目前,我们已经累计处理了1000万条错误事件,依靠自创的错误智能聚合算法,我们将这1000万条错误事件聚合为约1.9万个不同的错误. 根据初步统计,这些错误事件的分布基本上符合二八原理:少数用户的错误事件数占了错误事件总数的大部分:每个用户的少数错误重复出现的次数占了该用户所有错误事

Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试

首先登陆进入Mysql命令行  执行sql      show variables like 'slow_query%';  结果为OFF 说明还未开启慢查询 执行sql     show variables like 'long_query_time';  可以看到具体的慢查询 ""时限" 我们先开启慢查询 执行sql set global slow_query_log='ON'; 这是再去查询一下(show variables like 'slow_query%';)发现

贩卖470余万条12306用户数据的人被抓了!

"首都网警"称,贩卖 470 余万条 12306 用户数据的人被抓了! 2018 年 12 月 28 日,北京市公安局网络安全保卫总队(以下简称网安总队)工作中发现,网传有人利用互联网贩卖 470 余万条疑似 12306 铁路订票网站的用户数据,而中国铁路总公司官方微博回应"网传信息不实,12306网站未发生用户信息泄露". 获此情况后,网安总队与西城分局成立专案组开展工作.经查,一网络用户"deepscorpions"在网上贩卖疑似 12306

Python看春运,万条拼车数据背后的春节迁徙地图

Python看春运,万条拼车数据背后的春节迁徙地图 今天是正月初九,春运返程也已过半.这篇文章,作者对北京.上海.广州.深圳.杭州等地 1万多条出行数据进行分析,得出了一些有意思的结论,并且绘制了这几个城市春运的迁移图.虽然数据在取样公平性上不能完全符合标准,但是思路还是值得大家学习参考的~ 目录 前言 统计结果 爬虫思路 统计思路 后记 前言 很早之前发过一篇关于某拼车平台爬虫的文章,因为工作比较忙,一直没有下文.最近年底稍微空了些,加上碰上春节返乡大潮,刚好再拿过来写一下数据分析的思路. 本

Oracle 快速插入1000万条数据的实现方式

1.使用dual配合connect by level create table BigTable as select rownum as id from dual connect by level <= 100000; 但是有connect by level有上限,如果超出上限,系统会报,"connect by level"内存不足,我试过1000000万数据可以,但是再多就不行了. 2. 使用xmltable,"CONNECT BY 操作内存不足,10g开始支持XML

1000万条有重复的字符串,找出重复数前10的字符串

输入的时候可以使用map来存储,然后将map里的数据转到vector里,按重复数从大到小输出10个即可. #include <iostream> #include <algorithm> #include <map> #include <string> #include <vector> using namespace std; map<string, int> mp; struct node { string s; int num;