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了
- 3955 最长严格上升子序列(加强版)
- POJ 1985 Cow Marathon(树的直径)
- Django内置的分页模块
- Cookie和Session
- POJ 1655 Balancing Act(树的重心)
- Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
- Django之ORM其他骚操作
- Centos 7下 FTP 服务器
- Django之views系统
- Brackets
- django之urls系统
- 最长公共子序列(稀疏序列)nlogn解法
- P1776 宝物筛选_NOI导刊2010提高(02)(背包的二进制优化)
- PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法