CTF-摩斯电码解密

时间:2022-07-23
本文章向大家介绍CTF-摩斯电码解密,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前言

发生了点事,大半夜睡不着,胡乱写一些东西,这是前段时间看到的一个密码学的题目,有一说一,怪有意思的

正文

摩斯电码 是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号

前段时间做题的时候,看到了一道题

起初还不知道是什么东西,以为是二进制转字符串那种,在尝试过了之后发现有点不对劲(因为失败了,没啥不对劲的)

后来发现,0110 0000这种形式,有点类似摩斯电码

摩斯电码中,无非是 .-两种,和0 1能匹配的上,故而,将 0视为 .,将 1视为 -

那么每空格为一个单位,第一个为 0110,等于 .--.拎去在线解码后得到了个P,说明是可行的

确认了思路后,以下有两种解决思路

第一种是,自己写出摩斯电码,然后拎去网站解码,代码如下

执行后,得到摩斯电码

复制,拿去网站解码,得到flag

还有一种方法,那就是,自己写解码程序,当然只是匹配后替换而已,方法都一样

from __future__ import print_function
a = input("input the string:")
s = a.split(" ")
dict = {'01': 'A',
        '1000': 'B',
        '1010': 'C',
        '100':'D',
        '0':'E',
        '0010':'F',
        '110': 'G',
        '0000': 'H',
        '00': 'I',
        '0111':'J',
        '101': 'K',
        '0100': 'L',
        '11': 'M',
        '10': 'N',
        '111': 'O',
        '0110': 'P',
        '1101': 'Q',
        '010': 'R',
        '000': 'S',
        '1': 'T',
        '001': 'U',
        '0001': 'V',
        '011': 'W',
        '1001': 'X',
        '1011': 'Y',
        '1100': 'Z',
        '01111': '1',
        '00111': '2',
        '00011': '3',
        '00001': '4',
        '00000': '5',
        '10000': '6',
        '11000': '7',
        '11100': '8',
        '11110': '9',
        '11111': '0',
        '001100': '?',
        '10010': '/',
        '101101': '()',
        '100001': '-',
        '010101': '.',
        '110011':',',
        '011010':'@',
        '111000':':',
        '101010':':',
        '10001':'=',
        '011110':"'",
        '101011':'!',
        '001101':'_',
        '010010':'"',
        '10110':'(',
        '1111011':'{',
        '1111101':'}'
        };
for item in s:
    print (dict[item],end='')

将字符串通过input输入了之后,也直接就有flag了