查看: 172|回复: 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
排列组合大致如下
1!2@{[}]asefcghnl
直接刚可能性太多,这里我们知道应该是flag{}样式,所以缩小范围为
1!2@sechn
编写如下脚本
  1. import itertools
  2. import hashlib

  3. def sha1(str):
  4.     sha = hashlib.sha1(str)
  5.     encrypts = sha.hexdigest()
  6.     return encrypts
  7. a1 = '1!'
  8. a2 = '2@'
  9. a3 = '{'
  10. a4 = '}'
  11. for str1 in itertools.combinations(a1,1):
  12.     for str2 in itertools.combinations(a2,1):
  13.         str3 = str1[0]+str2[0]+'sechn'
  14.         for i in itertools.permutations(str3):
  15.             tmp = (''.join(i))
  16.             res = 'flag{'+tmp+'}'
  17.             # print sha1(res)
  18.             if sha1(res) == 'e6079c5ce56e781a50f4bf853cdb5302e0d8f054':
  19.                 print res
  20.                 break
复制代码

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

论坛公告上一条 /2 下一条

快速回复 返回顶部 返回列表