招兼职程序员 语言不限

2016-09-29 15:58:10 +08:00
 zhaomanong

时间充裕,基础好,收入让人非常一颗赛艇。请解决下面问题联系我们:

We hope you can contact our wechat ID hashed below:

1cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d11cb251ec0d568de6a929b520c4aed8d1

First, we generated a series of string prefixes with lengths increasing by 1. For example, if our wechat ID was helloworld, we would generate: he hell hellow hellowor ... helloworld

Then, for every prefix s, we computed the following hash J: md5(md5(e) + s + md5(s)) [where + is the string concatenation operator and e is 'v2ex']. Finally, we concatenated all hash strings J to form the long hash above!

For example, for helloworld, we would compute: md5(md5('v2ex') + 'h' + md5('h')) + md5(md5('v2ex') + 'he' + md5('he')) + md5(md5('v2ex') + 'hel' + md5('hel')) + ...

For the sake of simplicity, you can assume that our wechat ID only contains alphanumeric characters.

After solving the challenge, please contact the wechat ID that you decoded and send us your resume. You can also access our website by www.wechatID.com know what we do.

Good Luck!

2155 次点击
所在节点    外包
40 条回复
mokaiZz
2016-09-29 19:40:37 +08:00
so cool~
a812159920
2016-09-29 20:17:46 +08:00
怎么是一个广告网站?
lygmqkl
2016-09-29 20:24:49 +08:00
有点意思,但是 第 19w 的账号。。。
lygmqkl
2016-09-29 21:03:02 +08:00
我预言下,这个招聘最后没人会去解。

理由如下:
1. 信息不对等,甚至有点不放心。对所谓的招聘几乎一无所知,只说了收入好,保不齐是小 P 孩想出来的点子。我就不相信一个做 Web 的解出这道题就能去写桌面程序了?

2. 看似专业的招聘其实内容有逻辑漏洞,感觉在显摆。特别是最后一句话, wechat ID, 除了账号和数字,还能有第三种组成?中文,特殊字符?与其说这个不如说下总长度,或许那才是 sake of simplicity

最后说下解法,这个纯粹是为了防止被喷,提一下思路:

首先长度,我估计在 6-10 位,如果是手机号有可能是 11 位,可以优先尝试纯数字,因为 wechat 后期的策略是手机号注册。

接着说解法,就是拿一定规则生成的字符串,通过提示的 hash logic 生成,然后和 1cb251ec0d568de6a929b520c4aed8d1 做对比

接着说字符串生成规则,既然是只有字母和数字,考虑 ascii 码通过数字在一定范围内变幻的方式来穷举吧

最后说点我喜欢的可以上升到架构层面来玩一下,其实是最终用时
第一步,可以开一台 vps ,新建一个数据库,然后用 php cli 模式不停的往数据库里去写入穷举字符串,可以多跑几个 cli 用长度区分 比如 A(1-5bit 数量很少还是 cover 一下)B(6bit)C(7Bit)D(8Bit).
第二部,再写个简单的 php cli 多线程代码,包含数据库读取|拆分|加密过程,结果不用存回了,比较下不合适就丢弃吧(已读数据 flag)。这个 php cli 代码可以部署到 20 台(更多)aliyun vps 上形成一个小型分布式系统对数据库里不停出现的字符串进行比对,命中后给自己发个邮件吧。

时间嘛 估计 4-5 个小时 应该差不多就能出结果了。可是值得吗?
garyglgan
2016-09-29 22:10:26 +08:00
骗眼球的,这个串实际上由 8 个完全一样的 md5 digest 组成,每个都是一个 MD5('text'),所以上面的串实际上是 MD5('text')+MD5('text')+MD5('text')+MD5('text')+MD5('text')+MD5('text')+MD5('text')+MD5('text')
zhaomanong
2016-09-29 22:15:48 +08:00
@lygmqkl
1. 没有招聘信息是因为是灰色产业,不想引来太多的关注。但保证不违法,收入非常可观。
2. 之所以是 wechat ID 也是有一定原因的,解开之后自会明白。

感谢您的思路!但是真新没这么复杂啦, vps 都祭出来了,哈哈

Hint : 通过 hash 的长度,可以确定知道此微信 id 长度。
zhaomanong
2016-09-29 22:25:42 +08:00
@garyglgan 感谢指出错误....
templefox
2016-09-29 23:30:13 +08:00
附言的连位数都不对,没有一点点诚意
templefox
2016-09-29 23:31:09 +08:00
@templefox 是我看错了
goodman001
2016-09-30 01:02:37 +08:00
临睡前才看到,已有思路, wait for me !
goodman001
2016-09-30 01:05:06 +08:00
@lygmqkl 没有辣么复杂~
TotoroLee
2016-09-30 01:58:03 +08:00
golang 写完,运行不到 1 秒就能出结果~
kernel365
2016-09-30 07:51:51 +08:00
一颗赛艇
lygmqkl
2016-09-30 08:29:13 +08:00
@goodman001 之前的 hash 是重复的,以为是随机 string 生成的 32 位 hash ,现在的 hash 倒简单了。
lygmqkl
2016-09-30 08:29:40 +08:00
@garyglgan 昨天睡觉前我也发现了是 text 加密。
newguest
2016-09-30 08:30:13 +08:00
Mark
goodman001
2016-09-30 09:39:47 +08:00
goodman001
2016-09-30 09:39:47 +08:00
goodman001
2016-09-30 09:40:14 +08:00
@lygmqkl 嘿嘿
goodman001
2016-09-30 09:40:39 +08:00
python 秒破

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/309785

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX