BugkuCTF:这不是摩斯密码,easy_crypto,简单加密
这不是摩斯密码
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ++++[ ->+++ +<]>+ +++.< +++[- >---< ]>--- .---- .<+++ ++++[ ->--- ----< ]>--- ----- ----- .<+++ ++++[ ->+++ ++++< ]>+++ ++.<+ +++++ +[->- ----- -<]>. <++++ ++++[ ->+++ +++++ <]>++ .<+++ [->-- -<]>- ----. <++++ +++[- >---- ---<] >---- ----. +++++ +..++ +++.+ .<+++ [->-- -<]>- --.<+ +++++ +[->+ +++++ +<]>+ ++.++ +.+++ +++++ +.--- -.+++ ++.<+ ++[-> +++<] >++++ ++.<
这些符号联想到brainfuck,去找bugkuCTF的小工具(关于页面里):
easy_crypto
长短不一的01序列,联想到摩斯电码,百度一下相关的规则写个脚本:
str = input()
key = str.split(" ")
dic_morse = {'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 elem in key:print(dic_morse[elem].lower(), end='') # 需要注意的是,结果跟输入的字符序列不一样,中间不需要空格隔开,还要将相应的大写字母转化为小写字母
结果如下:
简单加密
密文:
e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA
由 AA 两个相同的字符想到了base64后面的那两个 ==
猜想是先base64加密后进行凯撒加密,如果猜想正确,那么这就是凯撒的4位后移('A'的ascii是65,'='的ascii是61),写个脚本试试:
import base64string1 = "e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA"
string2 = ""
for i, elem in enumerate(string1):string2 += chr(ord(elem) - 4)
string2 = base64.b64decode(string2)
print(string2)
结果:
BugkuCTF:这不是摩斯密码,easy_crypto,简单加密相关推荐
- BUGKU 密码题:这不是摩斯密码
BUGKU 密码题:这不是摩斯密码 这不是摩斯密码 打开文件,发现如下符号: 可以发现,符号都是由> < + - . , [ ]来组成.那么显然,这个是Brainfuck加密.这里推荐一个 ...
- bugku_crypto_这不是摩斯密码
BUGKU 密码题:这不是摩斯密码 这不是摩斯密码 打开文件,发现如下符号: 可以发现,符号都是由> < + - . , [ ]来组成.那么显然,这个是Brainfuck加密.这里推荐一个 ...
- C/C++如何连接MySQL服务器以及简单加密
下面先给出MySQL连接前的官方文档 Application programs should use this general outline for interacting with MySQL: ...
- 如何用C语言对文件进行简单加密
最近在完成大作业的时候需要实现一个用C语言对文件进行简单加密的操作,这里主要用的加密思路是破坏文件头,使得系统无法识别文件从而进行加密,最初的思路是将用户输入的加密口令转成ASCII码,再与文件头数据 ...
- Spring Boot+Spring Security:记住我(Remember-Me): 基于简单加密token的方案 - 第25篇
前言 在上一节我们介绍了Spring Security中"记住我"的两种方案,那么本节就先介绍一下其中的一种:基于简单加密token的方式. 一.编码分析 当用户选择了记住我成功登 ...
- 如何用C语言简单加密文件+
上一篇文章写完以后,收到了很多朋友的私信,希望我能写出一个较为完善的利用C语言简单加密文件的代码,今天花了点时间终于调试完了,相比于上一篇文章的代码的话这里做了一些改进: 1.加密文件的数据改为原文件 ...
- Java学习之编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符。
案例介绍: 编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符. 加密规则:输入A,输出Z;输入B,输出Y:输入a,输出z;输入b,输出y. 案例代码: import java.io.* ...
- 1093 打印小写字母表+1101时间的差+1115数字和+1134 国王的魔镜+1387简单加密+1480找字典码最小的字符串+1098判断是否构成回文+1591求子串的位置+1116调换位置
** 1093 - 打印小写字母表 ** 来源: 东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; int ma ...
- 小练习----春夏秋冬,回文数,不死神兔,去掉最高最低求和,数组反转,简单加密,switch语句
春夏秋冬 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); if (a == 1 || a == 2 || a == 12) {Sy ...
最新文章
- 利用Kafka和Cassandra构建实时异常检测实验
- 过滤功能失效 Google Base成“虚拟×××”
- OSGI框架的功能和设计思
- 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
- [vue] 组件和插件有什么区别?
- 奖金(信息学奥赛一本通-T1352)
- 为什么openstack要用rabbitmq这类消息中间件来进行RPC这类的操作呢,直接rpc不行吗?
- 安装了email模块还是报错_官网的Pyngl和Pynio安装方法会报错!正确的在这里!
- Zoom 5.1.2及旧版本在 Win7 上的 DLL 劫持漏洞分析
- 国内财务软件公司排名
- 在中国mapinfo电子地图中添加投影教程
- ES6模板字符串if语句判断
- git rebase 命令 常用_git rebase命令
- python matplotlib contour画等高线图
- Android长截图(五) - 遇到的坑
- 有特色的出版社图书封面
- 获得网易云音乐歌曲播放的url
- macos13 Ventura虚拟机安装无网络问题
- 国内商务邮箱哪个好用?电子邮箱怎么申请?
- matlab mic系数_科学网—最大信息系数 (Maximal Information Coefficient, MIC)详解(1) - 彭勇的博文...