BUU-crypto-刷题记录03

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值