Cipher
题目
还能提示什么呢?公平的玩吧(密钥自己找) Dncnoqqfliqrpgeklwmppu 注意:得到的 flag 请包上 flag{} 提交, flag{小写字母}
解题
加密方式为:普莱菲尔密码
密钥为:playfair(公平的玩)
则25位密钥为:playfirbcdeghkmnoqstuvwxz(这道题去掉了j)写成5×5的矩阵
解密方式:将明文分为两个一组,如果成对后有两个相同字母紧挨或最后一个字母是单个的,就插入一个字母X(或者Q)。
1 、若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应dc
2 、若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 、若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。
网站:http://ctf.ssleye.com/playfair.html
答案:flag{itisnotaproblemhavefun}
达芬奇密码
题目
达芬奇一直是一个有争议的画家,科学家。。。小明为了研究他,从网上找到了名画蒙娜丽莎,一天深夜,小明突然从蒙娜丽莎背后的天空中看到了一串神秘的数字。顺带告诉小明达芬奇家窗台上有一串数字是关键。小明千里迢迢找到了这串数字,请将这个送分题做出来,亲,包邮哦(答案是一串32位十进制数字)
达芬奇隐藏在蒙娜丽莎中的数字列:
1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711
记录在达芬奇窗台口的神秘数字串:
36968853882116725547342176952286
解题
一直密钥为达芬奇窗台上的神秘数字串
斐波那契数列加密:
1、定义斐波那契数列,用来做密码表。
2、将秘钥字符串与斐波拉契数列做关联,进行加密计算得到新的密码表。
3、加密,需要加密的原始字符串与加密计算后的新密码表进行异或,得到加密之后的字符串。
4、解密,把加密后的字符串与加密计算后的新密码表再进行异或就得到原始字符串
脚本
b = "1 233 3 2584 1346269 144 5 196418 21 1597 610 377 10946 89 514229 987 8 55 6765 2178309 121393 317811 46368 4181 1 832040 2 28657 75025 34 13 17711 "
m = "36968853882116725547342176952286"
def fbnq(i):
if i == 0:
return 1
elif i == 1:
return 1
else :
return fbnq(i-1)+fbnq(i-2)
a=[]
b=list(map(int,b.split()))
m=list(m)
#生成斐波那契数列
for i in range(len(b)):
a.append(fbnq(i))
#解密
for i in range(1,len(b)):
for j in range(len(b)):
if a[i]==b[j]:
print(m[j],end='')
答案
37995588256861228614165223347687