前言

在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

ROT13是凯撒密码的一种变体,即移位数为13。ROT13是它自己本身的逆反,也就是说,要还原ROT13,应用加密同样的算法即可得,故同样的操作可用再加密与解密。

一、变异凯撒

1.打开题目

在这里插入图片描述

2.解题

编写一段python代码来检查其中的对应关系

1
2
3
4
5
str1 = "flag{"
str2 = "afZ_r"
for i in range(0,5):
a = ord(str1[i])-ord(str2[i])
print(a )

得到:5、6、7、8

因此,我们只需要编写一段python代码,通过ASCII码的运算,来得到flag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def b_kaisa(mstr):
j = 5
i = 0
lmstr = []
for i in range(len(mstr)):
m = ord(mstr[i]) # 将密文的第i个字母变为其ascii码值
m = m + j # ascii值+j
lmstr.append(m) # 将递进后的ascii值存入列表lmstr[]
i = i+1
j = j+1
return lmstr


if __name__ == '__main__':
m_str = 'afZ_r9VYfScOeO_UL^RWUc' # 密文
lstr = []
lstr = b_kaisa(m_str)
print (lstr)

将ASCII码放入转换器,得到flag{Caesar_variation}