密码学(二)

1、凯撒部长的奖励
2、告诉你个秘密(ISCCCTF)
3、变异凯撒
4、传统知识+古典密码

1、凯撒部长的奖励
在这里插入图片描述
密文:MSW{byly_Cm_sIol_lYqUlx_yhdIs_Cn_Wuymul_il_wuff_bcg_pCwnIl_cm_u_Yrwyffyhn_guh_cz_sio_quhn_ni_ayn_bcm_chzilguncihm_sio_wuh_dich_om}
看着挺凶的题,拿去解个密竟然就出来了;这里使用的是Bugku的工具,不得不说,真的很好用,嘿嘿。

flag:SYC{here_Is_yOur_rEwArd_enjOy_It_Caesar_or_call_him_vIctOr_is_a_Excellent_man_if_you_want_to_get_his_informations_you_can_join_us}
2、告诉你个秘密(ISCCCTF)
在这里插入图片描述密文:

636A56355279427363446C4A49454A7154534230526D6843
56445A31614342354E326C4B4946467A5769426961453067

先来理性分析一波

  1. 查看给定的字符串中,字符只有A-F,并且字符串两两结合对应的十进制小于128(ASCII码范围为0–127)

  2. 将他们转化为ascii对应的字符
    cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g

  3. 2中得到的字符串,像是经过了base64编码,进行解密得
    r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM

  4. 看到这以空格分组的字符串,也懵逼了,到底啥意思呢,低头对着键盘。
    发现r5yg包着了t,以此类推得到tongyuan。(这是键盘加密)

  5. 小写无法提交,使用大写提交

代码:

#coding:utf-8
import base64
strs="636A56355279427363446C4A49454A7154534230526D684356445A31614342354E326C4B4946467A5769426961453067"
i = 0
strs_len = len(strs)
chs=[]
while(i < strs_len):
    chs.append(chr(int(strs[i:i+2],16)))
    i = i + 2
print("".join(chs))
print(base64.decodestring("".join(chs)))

3、变异凯撒
加密密文:afZ_r9VYfScOeO_UL^RWUc
由题目中得知,这个密文的加密与凯撒解密有关,那就先解下密;
在这里插入图片描述
但是解密内容貌似并没有我们想要的;那来分析下他们的ASCII码吧
密文:afZ_r9VYfScOeO_UL^RWUc,看看能否与ctf 或者flag 对应上,

a:97    f:102    Z:106     _:95`                                                                                                                           
c:99    t:116    f:102     {:123
f:102   l:108    a:97      g:103

可以发现规律a→f 移动了5 ; f→l移动了6, 后面依次移动了7、8。
知道了这些就可以写脚本了:

#!/usr/bin/env python
# coding:utf-8


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}

4、传统知识+古典密码
小明某一天收到一封密信,信中写了几个不同的年份
辛卯,癸巳,丙戌,辛未,庚辰,癸酉,己卯,癸巳。
信的背面还写有“+甲子”,请解出这段密文。

key值:CTF{XXX}

额…这题感jio很有意思的亚子;这里的年份是天干地支纪年法,其中一个甲子是60年,百度下这些年份的,这里得到了一张应该有用的信息:
在这里插入图片描述
对应着这些年份:
辛卯:28
癸巳:30
丙戌:23
辛未:8
庚辰:17
癸酉:10
己卯:16
癸巳:30
题干中说信的背面还写有“+甲子”,于是我们可以把每个数加上60即可
88,90,83,68,77,70,76,90
emmm…得到这些数字把它们转化成ascii码看看

 XZSDMFLZ

没有别的提示,只好去翻翻别人的blog ,才知道需要先栅栏解密,2位一栏,然后再凯撒解密。唉,我错了,这题挺无聊的 ̄へ ̄
flag:CTF{SHUANGYU}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏