为什么常识

米聊是如何匹配好友的?

生活词典 changshi.cidiancn.com

阅读: 222

米聊是如何匹配好友的?已知:扫描通讯录疑似:扫描通话记录,扫描g-il账户。问题:为何会匹配出完全不认识的用户?8 个答案

答案 1:

电话号码最多可变的数字10位,空间大概是10^10大小 (11位因为第1位都是1)。刚刚我写了个小pyt-on程序,非常简单,没有任何优化,而且pyt-on的效率本来就低。import -as-liba = ["%d"%i for i in range(5*10**6)]b = [-as-lib.md5(i).digest() for i in a]只用了12秒。换算过去,大约需要24000秒,也就是最多6个小时用这个5秒钟写出来的小脚本就可以把所有的电话号码的MD5都穷举出来。如果用个C语言或者用个好点的算法,可能时间会缩短到这个的1%,那也就是5分钟左右。说自己的工作人员也无法解密的同学,似乎是负责运营的,可能真的不了解技术细节,保存MD5是一个好的方案,但是对于这样小的空间来说,依然是无济于事的。

答案 2:

和工程师具体沟通之后,之前的回复不是特别准确,米聊在通讯录匹配过程中做了加密,所有的匹配都是通过加密数据进行的,而且还在继续改进方法,保证用户数据安全。

答案 3:

这个加密要学学Discuz,多加一个SALT就能解决很多问题。早期的各种网站、论坛都是使用MD5加密,但是在强大的彩虹(-as-)表面前,大部分不健壮的密码都会被穷举(在线穷举:.cmd5),后来Discuz改善了加密方式(百科:baike.baidu/view...)。如果小米真的只是单向MD5,这被-库之后就让人不淡定了。

答案 4:

其实用md5(私有盐+电话+私有盐+号码+私有盐) 这样要穷举出来非一日之功。

答案 5:

不需要解密,通信录穷举写入手机号,然后抓取返回

答案 6:

多注意android的应用,很多莫名其妙要读取通讯录权限,真的费解.

答案 7:

米聊里“你认识的XX”是检测用户的通讯录获得的。“XX可能有你的-”应该是对方通讯录里有你的-。PS:Android手机有google account sync,所以扫描g-il很简单吧

答案 8:

MD5 纯数字,显然很容易-出来

分享常识给亲友.

下一篇:招聘产品经理时都问哪些问题? 下一篇 【方向键 ( → )下一篇】

上一篇:如果有相关工作经验的话,文科生成功申请读公共卫生专业的几率大吗? 上一篇 【方向键 ( ← )上一篇】