“魔盒挑战”马上就要拉下帷幕了,相信挑战者们都已经自信满满地解开了,今天就要向大家公布最后一题的题解啦!
1
HASH题解
终于来到最后一题了,让我康康题目。。。
大概是说要找一个字串,接在自己学号后面,然后做一个叫 “md5 hash” 的操作使得前 5 位是 0
md5?hash?这都是什么?我只会python啊,这python能做?
让我上廖雪峰的博客看看有没有什么好东西
好,看来有现成的能用,那么是时候使用opencv技术了!
那接下来呢?我并不知道hash md5具体怎么搞得啊?
多(一)年的ACM经验告诉cnt0,遇事不决交暴力。
那么先import两个模块然后写个随机字串
import random
import hashlib
def ran_str(x):
res=''
for i in range(x):
res+=chr(random.randint(97,122))
return res
然后敲个暴力
def main():
s0='1727405097'
while True:
tmp=ran_str(7)
s=s0+tmp
md5=hashlib.md5()
md5.update(s.encode('utf-8'))
s1=md5.hexdigest()
flag=1
for i in range(5):
if s1[i]!='0':
flag=0
break
if flag:
print('hash value:',s1)
print('ans:',s)
return
main()
然后莽一发!
绝了,竟然一秒不到就跑出来了。
交!
成功惹!
相信大家都学到了。
“
如果你这么做fail了,那么你可能要么星际了,要么...把md5初始化写在了循环外面,看一看update()这个函数,它叫update是有理由的,它做的事情是把你丢进去的字串拼接在原字串后面,然后再进行md5加密,所以你如果把当前随机出的字串当答案,那显然是错的。
╮( ̄▽ ̄"")╭
”
这就是本次题目的题解啦,是不是很简单呢?!
2
获奖名单
本次挑战我们感受到了大家积极参与的热情,此刻,就让我们来揭晓获奖名单吧~
下面重点来啦(敲黑板)
快看看有没有自己的名字呢?!
马雨昂
郑添元
董一琛
盛坤
任泽铭
让我们恭喜以上获奖的童鞋!
最后感谢大家的积极参与!
图文:COUNT_ZERO
编辑:囧星人
首发于微信公众号:SUMSTC
苏州大学微软俱乐部
领取专属 10元无门槛券
私享最新 技术干货