招兼职程序员 语言不限

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!

2133 次点击
所在节点    外包
40 条回复
garyglgan
2016-09-30 10:08:39 +08:00
@zhaomanong
wechat ID 该用户不存在
ytmsdy
2016-09-30 10:16:01 +08:00
卧槽!!!!!
cocalrush
2016-09-30 10:52:32 +08:00
囧 没那么复杂 刚开始想到,直接用最后一个算我也是醉了...
Nexvar
2016-09-30 13:33:11 +08:00
楼主在美国,破译了找他不在,估计现在睡觉中
kcross
2016-09-30 15:48:48 +08:00
灰色产业 是去菲律宾开发扑克游戏吗?
huai
2016-09-30 16:19:51 +08:00
js 可破
jiangzhuo
2016-09-30 16:50:07 +08:00
解开了,原来还有这样的细分领域,似乎你们不需要 node.js 的
ezreal
2016-09-30 21:43:03 +08:00
好叼了这行业
hanswe
2016-09-30 23:05:40 +08:00
var charSets = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '_', '-'];

试了下穷举, 8^64 次方,用 node 大概 4s 算了 1w 个,一辈子也算不出来了吧。。。

楼上算出来的各位是怎么解的?
hanswe
2016-09-30 23:15:18 +08:00
明白怎么算了。。。我想错了
hanswe
2016-09-30 23:22:27 +08:00
服了。。。算出来是个干这的。。。
syv2
2016-09-30 23:31:33 +08:00
这题没什么难度吧,挨个迭代就是了,楼上有人说秒破的,我这计算花了 0.036s ,写得太糙了

加了微信,瞄了眼朋友圈,其实没灰色那么玄乎,小屁孩的作业水平
kiddz
2016-10-01 00:05:30 +08:00
easy one
kiddz
2016-10-01 00:06:09 +08:00
的确不怎么灰
kcross
2016-10-01 01:24:38 +08:00
这种事情还不灰难道还是白的?
Nexvar
2016-10-01 15:39:23 +08:00
laoyur
2016-10-01 17:19:45 +08:00
好吧,我也来贴一个, Python 初学者,轻喷……
https://gist.github.com/laoyur/08cf96cad3c76815224cfc203fd43bb3
POP
2016-10-03 19:32:40 +08:00
csdaixie
msg7086
2016-10-03 23:06:01 +08:00
require 'digest'

md5 = '3bed22f7f496e84b035a996522baa7594c27c7e5718a78bfddf9012904b70eb755d67f90c8de149ead7ee674b024f38c216642030c2d54cb1dd657dd66342c99c239f3c31fd399fc052a9b7861f2073d2b9f47811dd77fd544d570c34bf5f349d110389979571714694a5054238465ca38ba26c25fb1a32b4d0a3b93666b09b3'
prefix = Digest::MD5.hexdigest 'v2ex'
str = ''

md5.scan(/.{32}/) { |m| str += [*'0'..'9',*'A'..'Z',*'a'..'z'].find { |s| Digest::MD5.hexdigest(prefix + str + s + Digest::MD5.hexdigest(str + s)) == m } }

puts str #=> csdaixie

撸逼版。
knh190
2016-10-05 13:20:20 +08:00
(defun solve (str)
(let ((ans ""))
(do ((i 0 (+ i 32)))
((>= i (length str)) 'done)
(let ((s (subseq str i (+ i 32))))
(setf ans (solve-rec s ans))))
ans))

(defun solve-rec (s ans)
(loop for a in (append *lower* *upper*) do
(let ((next (concatenate 'string ans a)))
(if (equal (hash next) s)
(return next)))))

Lisp 版: https://gist.github.com/KHN190/b85a1258b3bcdb5f01a4649074d5e38c

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

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

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

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

© 2021 V2EX