Tech
[分享创造] 我用不到 700 MB,做了一个覆盖 100 亿手机号空间的 MD5 反查工具
前段时间偶然发现了几个手机号 MD5 反查网站:
https://phonehash.cn/single
http://124.221.109.178:5555/
https://tool.ytxsvr.com/md5
第一反应不是查号码,而是好奇:这种服务背后到底是什么实现?把 100 亿个手机号全部算一遍,需要多大的数据库、多少 CPU ,普
通服务器能不能跑?
于是我自己写了一套,从建表、索引到 Web 查询都跑了一遍。
先算最直接的方案
覆盖 10000000000 ~ 19999999999 ,一共是 100 亿个数字。
如果做完整索引,即使不保存完整 MD5 ,只保存截断哈希和 40 bit 的号码编号,每条记录压到 5 字节,最终仍然需要约 47 GiB 。
查询会很快,但为了这么一个工具准备几十 GiB 数据,感觉有点重。
换成彩虹表
后来采用了完美彩虹表,把号码连成一条条长度为 1000 的计算链:
手机号 → MD5 → 归约成新手机号 → MD5 → …… → 终点
数据库不保存中间经过的号码...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX