首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“魔盒挑战”——题解3

“魔盒挑战”马上就要拉下帷幕了,相信挑战者们都已经自信满满地解开了,今天就要向大家公布最后一题的题解啦!

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

苏州大学微软俱乐部

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181214G1HETW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券