2021-8-15-CTF

1、

题目名称:还原大师

题目类型:crypto

题目内容:我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母,为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码。但是我们获得它的32位MD5码也是残缺不全,E903???4DAB????08?????51?80??8A?,请猜出神秘字符串的原本模样,并且提交这个字串的32位MD5码作为答案。 注意:得到的 flag 请包上 flag{} 提交

解题技巧:看别的大神写的wp为MD5爆破,具体代码如下:(还没研究它啊啊啊啊啊啊啊!)

import hashlib

#print hashlib.md5(s).hexdigest().upper()
k = 'TASC?O3RJMV?WDJKX?ZM' #要还原的明文
for i in range(26):
temp1 = k.replace('?',str(chr(65+i)),1)
for j in range(26):
temp2 = temp1.replace('?',chr(65+j),1)
for n in range(26):
temp3 = temp2.replace('?',chr(65+n),1)
s = hashlib.md5(temp3.encode('utf8')).hexdigest().upper()#注意大小写
if s[:4] == 'E903': #检查元素
print (s) #输出密文

 

如果为:

题目答案:flag{E9032994DABAC08080091151380478A2}

2、

题目名称:古典密码知多少?

题目类型:crypto

题目内容:得到的 flag 请包上 flag{} 提交。

解题技巧:蓝色为猪圈密码,黄色为圣堂武士密码,黑色为标准银河密码,对照密码表得出一串字母:FGCPFLIRTUASYON

然后我不能准确的看出是什么密码,就放在工具里一键解密啦,得出是栅栏密码:

提交应为大写字母!

题目答案:flag{CRYPTOFUN}

科普:

标准银河字母:

标准银河字母(Standard Galactic Alphabet)出自游戏《指挥官基恩》系列。是系列中使用的书写系统。这是一个简单的替代暗号,用不同的符号取代拉丁字母。SGA可以在不同的语言中使用,比如在游戏《Minecraft》,《指挥官基恩》中。

如果遇到这类题。直接根据题目来进行图翻->字母

 

圣堂武士密码:

圣堂武士密码(Templar Cipher)是共济会的“猪圈密码”的一个变种,一直被共济会圣殿骑士用。

直接根据图片上的直接翻译出字母即可

 

栅栏密码:

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)

加密原理::

①把将要传递的信息中的字母交替排成上下两行。
②再将下面一行字母排在上面一行的后边,从而形成一段密码。
③例如:
明文:THE LONGEST DAY MUST HAVE AN END
加密:
1、把将要传递的信息中的字母交替排成上下两行。
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
2、 密文:
将下面一行字母排在上面一行的后边。
TEOGSDYUTAENN HLNETAMSHVAED
解密:
先将密文分为两行
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再按上下上下的顺序组合成一句话
明文:THE LONGEST DAY MUST HAVE AN END
注:
(1)在选择行数时可以使多行,这样对于加密强度有所提高。
(2)可以在加密之后在使用其他密码进行加密,增加强度
 
posted @ 2021-08-15 21:20  Purple-L  阅读(280)  评论(0编辑  收藏  举报