Crypto
参考文章密码学基础知识总结-CSDN博客
密码学系列之一:密码学的前世今生_《密码学》起源-CSDN博客
师兄说,真正的密码学并不是简单的使用一些在线工具,就能够破解出来的。
我也觉得,真正的密码学是复杂的,是深奥的,是有迹可循的。密码学,需要聪明的头脑,足够的耐心和一定的灵光乍现。
以下是一些简单的密码题复现。
XX+CC
下载附件后,使用XXencode进行解码
SMKNOLr7eLJpaIJdXHX3PLahMO3FeJ4FOIKBLL3dc
观察解码结果,尝试对前四个字符afZ_进行对应关系的查询
详细信息参考ASCII码一览表,ASCII码对照表 (biancheng.net)
可看出对应关系,尝试编写脚本解密
p="afZ_rj]]fQZcN1[^kXhTjTdZQcW\Zh" #解密的字符串
j=5 #位移值
for i in p:
print(chr(ord(i)+j),end='')
j+=1
解码后发现前半段flag已经出现,后半段却乱码了。
尝试修改位移值
尝试多次后,当位移值为-8时,找到后半段规律且正确的flag
得到flag{this_is_Caesar_variation}
但是这种方法,脚本太过简单,且操作起来复杂麻烦。
厉害的师姐写了一个细致准确一步到位的脚本
ciphertext = "afZ_rj]]fQZcN1[^kXhTjTdZQcW\Zh"
plaintext = ""
part1_offset = 5
part2_offset = 6
# 第一部分解密
for i in range(len("flag{this_is_}")):
char = ciphertext[i]
plaintext += chr(ord(char) + part1_offset)
part1_offset += 1
# 第二部分解密
for i in range(len("flag{this_is_}"), len(ciphertext)):
char = ciphertext[i]
plaintext += chr(ord(char) + part2_offset)
part2_offset += 1
print(plaintext)
运行后很快得出flag
mdmd555
下载打开附件
Yunxi{?_real?y_k?0w_md5}
#42db61d26c6541e30314cafc60f93113
观察题目,上方即为flag,下方为正确flag的MD5值
厉害的师姐又写了一个细致准确一步到位的脚本
import hashlib
for i in range(32, 127):
for j in range(32, 127):
for k in range(32, 127):
m = hashlib.md5()
m.update(('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}').encode('utf-8'))
des = m.hexdigest()
if des == '42db61d26c6541e30314cafc60f93113':
print('Yunxi{' + chr(i) + '_real' + chr(j) + 'y_k' + chr(k) + '0w_md5}')
break
运行后得到flag
Fuck!
下载并打开文本
464D5653574B5A4C45415653574B5A4C4C4D51433250524C464D5653414B5A4C464D56535749424C48524F54344B5A41464D5653574B5A4C45415653574C5234464D5143574B5A4C464E4E53414C4A36464D56535749424C464D364632505241464D5653574C524E45415753324C4A4E46554643324C5234464D5653414B3233465537435749424C464D364632505241464D5844594B5A4C45415656574C4A3646555143324C4A344C553743414C4A4E465557533249424E46593643574B5A41464D5656574C4A3645415653574B5A4C485151463250524C464D58434150424C464D56535743524C464E4E533250524146555753324C4A4E4541575459584A3646595144594B5A4C464E4E53414C4A36464D5653574942344C553743574B5A41464D5653574C524C45415653574B5A4C464D5143574C524E46555753414C4A4E465557533249424E46593643574B5A41464E4E533250524C424956535750433548595143574B5A4C46595753414C4A4F465557533249424E46555753324C4A4146595753324C4A4E45415753324C5234464D5143574B5A4C4C4D57534150524C464D5653574942344C553743574B5A41464D5653574C524E45415753324C4A4E46595144594B5A4C464D565155575A4E485957533249424E465536463250524146595753324C4A4E45415753324C5234464D5143574B5A4C464E4E53414C4A36464D56535749424C464D364632505241464D5653574C524E45415753324C4A4E46555143324C5234464D5653414B3233465537435749424C464D36463250514B464D5844594B5A4C45415656574C4A3646555143324C4A344C553743414C4A4E465557533249424E46593643574B5A41464E4E533250524E454157533250433548595143324C5234464D5653414B5A4C464E4E533249423646555753324C4A41465536463250524E45415753324C5234464D4643574B5A4C464D565341575A4E485956535749424C464D5653575042414C553743574B5A4C45415653574B5A4C464D5143574B5A4C46595653414B5A4C464D56535749424C46595753324C4A4146555753324C4A4E45415753344B5A4C464D5143574C524E46555753414C4A4E465936435743524C464E4E5332505241464D56535750433545413743574B5A4C464D5143574C5234
使用工具解码
这里使用的是CyberChef,个人觉得比较好用,也可以用其他工具
观察解码结果,需要进行fuck解码
brainfuck interpreter (sange.fi)使用在线工具
解码后得到flag
在线工具
CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码 (hiencode.com)