查看: 1070|回复: 0

[Crypto] 2019年8月打卡_密码学_hahaha

[复制链接]
发表于 2019-9-6 12:49:10 | 显示全部楼层 |阅读模式
拿到题目发现是CRC32爆破,使用工具进行如下破解
327425d71e4ca58eb6.png
398465d71e4e5c8a42.png
178045d71e4fd1fa02.png
80345d71e51412e83.png
得到压缩包密码为:
tanny_is_very_beautifu1_
解密后拿到flag.pdf,得到如下信息
111275d71e52d3d9f8.png
需要我们进行排列组合,得到结果的Sha1为
e6079c5ce56e781a50f4bf853cdb5302e0d8f054
排列组合大致如下
[email protected]{[}]asefcghnl
直接刚可能性太多,这里我们知道应该是flag{}样式,所以缩小范围为
[email protected]
编写如下脚本
import itertools
import hashlib

def sha1(str):
    sha = hashlib.sha1(str)
    encrypts = sha.hexdigest()
    return encrypts
a1 = '1!'
a2 = '[email protected]'
a3 = '{'
a4 = '}'
for str1 in itertools.combinations(a1,1):
    for str2 in itertools.combinations(a2,1):
        str3 = str1[0]+str2[0]+'sechn'
        for i in itertools.permutations(str3):
            tmp = (''.join(i))
            res = 'flag{'+tmp+'}'
            # print sha1(res)
            if sha1(res) == 'e6079c5ce56e781a50f4bf853cdb5302e0d8f054':
                print res
                break

运行后得到flag
flag{[email protected]}
温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
微信公众号
快速回复 返回顶部 返回列表