• 爱因斯密
  • 猫爪

爱因斯密的猫

加密世界加密我

  • 爱因斯密
  • 猫爪

古典密码

2018年4月21日2018年4月21日实验吧, 实验吧密码学No Comments

题目

题干链接:http://www.shiyanbar.com/ctf/1870

密文内容如下{79 67 85 123 67 70 84 69 76 88 79 85 89 68 69 67 84 78 71 65 72 79 72 82 78 70 73 69 78 77 125 73 79 84 65}

请对其进行解密

提示:1.加解密方法就在谜面中

2.利用key值的固定结构

格式:CTF{ }


思路:列变换,凑CTF{}的格式。编程辅助变换观察


解题代码:

#change columns
origin_string="79 67 85 123 67 70 84 69 76 88 79 85 89 68 69 67 84 78 71 65 72 79 72 82 78 70 73 69 78 77 125 73 79 84 65"
split_origin_string=origin_string.split(' ')

#7*5=35
COL_NUM=7
ROW_NUM=5

new_string_list=[]
for ascii in split_origin_string:
    new_string_list.append(chr(int(ascii)))

def print_column():
    print("----Column----")
    ct=0
    for i in new_string_list:
        print(i,end=' ')
        ct+=1
        if (ct == COL_NUM):
            print()
            ct = 0
    print()

def exchange_column(c1,c2):
    print("Ready change:"+str(c1+1)+","+str(c2+1))
    for row in range(ROW_NUM):
        time = row * COL_NUM
        new_string_list[c1+time],new_string_list[c2+time]=new_string_list[c2+time],new_string_list[c1+time]

def ex_change():
    print(new_string_list)
    # 输出后观察
    print_column()
    #根据CTF{xxx}的格式开始变换
    #以下注释的编号从0开始,
    #'{'已经在位置,构造'}'
    #第2列的}换到最后1列6: 2 <-> 6
    exchange_column(2, 6)
    print_column()
    #构造CTF的F
    # 第5列F的换到第2列: 5 <-> 2
    exchange_column(5, 2)
    print_column()
    # 构造CTF的T
    # 第5列T的换到第1列: 5 <-> 1
    exchange_column(5, 1)
    print_column()
    # 构造CTF的C,有两个C,选一个换后有语义的
    # 第5列T的换到第1列: 5 <-> 1
    exchange_column(5, 0)
    print_column()
    #答案有语义,格式也正确,故正确
    print("".join(new_string_list))
if __name__=="__main__":
    ex_change()

输出结果:

['O', 'C', 'U', '{', 'C', 'F', 'T', 'E', 'L', 'X', 'O', 'U', 'Y', 'D', 'E', 'C', 'T', 'N', 'G', 'A', 'H', 'O', 'H', 'R', 'N', 'F', 'I', 'E', 'N', 'M', '}', 'I', 'O', 'T', 'A']
----Column----
['O', 'C', 'U', '{', 'C', 'F', 'T', 'E', 'L', 'X', 'O', 'U', 'Y', 'D', 'E', 'C', 'T', 'N', 'G', 'A', 'H', 'O', 'H', 'R', 'N', 'F', 'I', 'E', 'N', 'M', '}', 'I', 'O', 'T', 'A']
----Column----
O C U { C F T 
E L X O U Y D 
E C T N G A H 
O H R N F I E 
N M } I O T A 

Ready change:3,7
----Column----
O C T { C F U 
E L D O U Y X 
E C H N G A T 
O H E N F I R 
N M A I O T } 

Ready change:6,3
----Column----
O C F { C T U 
E L Y O U D X 
E C A N G H T 
O H I N F E R 
N M T I O A } 

Ready change:6,2
----Column----
O T F { C C U 
E D Y O U L X 
E H A N G C T 
O E I N F H R 
N A T I O M } 

Ready change:6,1
----Column----
C T F { C O U 
L D Y O U E X 
C H A N G E T 
H E I N F O R 
M A T I O N } 

CTF{COULDYOUEXCHANGETHEINFORMATION}

 

 

打赏赞(1)微海报分享
python解题列变换古典密码
carmel0
carmel0 (12 Posts)
View all author’s posts

文章导航

变异凯撒
VScode+GDB查看C栈及栈信息

发表评论 取消回复

类别

  • sql技巧 (2)
  • 公告 (1)
  • 实验吧 (7)
  • 实验吧WEB (5)
  • 实验吧密码学 (2)
  • 快速记录 (2)
  • 操作技巧 (1)
  • 未分类 (1)

关键字

00截断 (1) BP技巧 (2) Cookie (1) header头 (2) HTTPS抓包 (1) php函数漏洞 (1) python解题 (2) sql (3) sqlmap (1) sql注入 (3) tamper (1) 代码审计 (2) 公告 (1) 凯撒密码 (1) 列变换 (1) 古典密码 (2) 手工注入 (1) 手机抓包 (1) 水题 (1) 测试 (1) 爆库 (1) 过滤空格 (1)

近期文章

  • 密码保护:VScode+GDB查看C栈及栈信息 2021年11月18日
  • 古典密码 2018年4月21日
  • 变异凯撒 2018年4月21日

快速链接

  • Github
  • 微信公众号
  • E-Mail

功能

  • 登录
  • 条目feed
  • 评论feed
  • WordPress.org
Proudly powered by WordPress | Theme: Doo by ThemeVS.