NSSCTF刷题wp——单表替换密码
NSSCTF Crypto 模块
单表替换密码
[HGAME 2022 week1]Matryoshka ID:1855
打开Matryoshka.txt,发现是一堆点,看标签可能是Braille盲文,仔细比对后发现重点不是将盲文翻译成英语,而是后面得标签莫斯密码,可以发现⠌非常像平时解莫斯密码的分隔符,⠨和⠤就很可能对应着摩斯密码里面的长,短码
在线摩斯密码工具
结果前面完全不对,后面部分对,考虑到在莫斯密码里面,长短和短长是完全不一样的,反转一手
⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠤⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠨⠨
再解
46,66,42,75,66,45,46,6E,6D,4C,73,36,44,33,73,69,59,74,4C,36,58,32,70,34,69,4E,30,63,64,53,6C,79,6B,6D,39,72,51,4E,39,6F,4D,53,31,6A,6B,73,39,72,4B,32,52,36,6B,4C,38,68,6F,72,30,3D
去掉逗号(附上代码)
str='46,66,42,75,66,45,46,6E,6D,4C,73,36,44,33,73,69,59,74,4C,36,58,32,70,34,69,4E,30,63,64,53,6C,79,6B,6D,39,72,51,4E,39,6F,4D,53,31,6A,6B,73,39,72,4B,32,52,36,6B,4C,38,68,6F,72,30,3D'
for i in str:str =str.replace(',','')
print(str)
得
466642756645466E6D4C73364433736959744C3658327034694E306364536C796B6D3972514E396F4D53316A6B7339724B3252366B4C38686F72303D
观察到字母大小不超过F,考虑是否为16进制,hex转str
FfBufEFnmLs6D3siYtL6X2p4iN0cdSlykm9rQN9oMS1jks9rK2R6kL8hor0=
再用base解码失败
再回看txtCaesar:21; Vigenère:hgame
因为凯撒密码会位移字符,base终止符=会被移动,所以尝试维吉尼亚密码,再base
发现是base64
c0bmvghyz_{0Raz_gxxm0thkzo_0ob0m_vokcczt_!r}
再凯撒21位
h0gralmde_{0Wfe_lccr0ympet_0tg0r_atphhey_!w}
发现不对,再看标签栅栏,再解
hgame{Welc0me_t0_the_w0rld_0f_crypt0graphy!}
[UTCTF 2020]basics ID:201
打开txt全是01并且每隔8个字符就被分割,直接二进制转ASCII码(ps:我先转成了10进制)
读文本大概意思是说恭喜你过关,成功下一关,并且给出下一关的提示:那种code是A-Z,a-z,0-9,有时加上/和+,,这不就是base64嘛,直接解
再读下一关的提示什么Roman people,我们凯撒大帝老罗马人了,再凯撒解码(我的这里用的位移密码,所以偏移量是凯撒的26-n,意思是一样的)
再看提示: 提示:我们知道标志将采用 utflag{…} 格式 - 这意味着如果您看到该模式,您就会知道 u、t、f、la 和 g 的对应关系是什么。直接quip quip
congratulations! you have finished the beginner cryptography challenge. here is a flag for all your hard efforts: utflag{n0w_th4ts_wh4t_i_c4ll_crypt0}. you will find that a lot of cryptography is just building off this sort of basic knowledge, and it really is not so bad after all. hope you enjoyed the challenge!
什么恭喜你,什么什么巴拉巴拉的,直接跳过得flagutflag{n0w_th4ts_wh4t_i_c4ll_crypt0}
ps:最后一句话:你会发现很多密码学只是建立在这种基础知识的基础上,毕竟它真的没有那么糟糕。 希望你喜欢挑战!
[AFCTF 2018]Single ID:936
打开txt读函数
#include <bits/stdc++.h>
using namespace std;
int main()
{freopen("Plain.txt","r",stdin);freopen("Cipher.txt","w",stdout);map<char, char> f;int arr[26];for(int i=0;i<26;++i){arr[i]=i;}random_shuffle(arr,arr+26);for(int i=0;i<26;++i){f['a'+i]='a'+arr[i];f['A'+i]='A'+arr[i];}char ch;while((ch=getchar())!=EOF){if(f.count(ch)){putchar(f[ch]);}else{putchar(ch);}}return 0;
}
其中random_shuffle(arr,arr+26);
预示着代码加密是随机的,只有通过词频分析
我的做的时候,quipqiup直接爆破出来,无心之举,结果直接出了
NSSCTF刷题wp——单表替换密码相关推荐
- 单表置换密码java代码实现_单表替换密码
要求: 实现单表替换密码,用键盘接收明文和密钥,屏幕答应替换表和密文,大小写敏感,输入健壮性. 实际问题: 密钥处理应该是这个程序的重点,加密和解密都没有什么要注意的地方.用key[]数组接收keyt ...
- NSSCTF刷题wp——常用编码
NSSCTF Crypto 探索 常用编码 前两个题ID303,287在入门时做过了,详见另一篇wp链接 [AFCTF 2018]BASE ID:463 打开文件直接麻了,如果人工解码,估计黄花菜都要 ...
- NSSCTF刷题wp——Crypto入门
NSSCCTF Crypto 探索 Crypto入门 [鹤城杯 2021]easy_crypto ID:453 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等 ...
- 现代密码学大作业(一):实现单表替换的频率分析(python3.7)
现代密码学大作业(一):实现单表替换的频率分析 (知识水平.技能能力有限,如有不足之处,还望多多批评指正) 单表代替是最基础的一种加密方式.在加密时用一张自制字母表上的字母来代替明文上的字母(比如说A ...
- 单表代换密码加密解密
单表代换密码加密解密原理: 单表代换是指英文字母在进行密码编码替换的时候,有一张对照表,也就是说,对于每一个字母,都是唯一对应的,如: 26个源字母表为:abcdefghijklmnopqrstuvw ...
- 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】
刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...
- 单表代换密码之Caesar密码的代码实现
单表代换密码之Caesar密码的代码实现 代码块 代码块语法遵循标准markdown代码,例如: from operator import mod #ceasar加密算法 def ceasarC(a) ...
- 单表代换密码(凯撒密码)
单表代换密码概述 对所有的明文字母都用一个固定的代换进行加密 ,因而称为 单表代换密码.加密过程中是从明文字母表到密文字母表的一一映射.例: 恺撒(Caesar)密码. 缺点:不能抗击字母频度分析,容 ...
- LeetCode刷题——哈希表(python语言)
LeetCode刷题--哈希表(python语言) 一.哈希表 1.1 哈希表的概念 哈希表,也叫散列表.其实可以很像python的字典,也就是键(key)值(Hash(key))对,最简单也最常用的 ...
最新文章
- mysql多表分页查询语句_Mysql多表分页查询
- ChartDirector Python创建建多层甘特图的代码
- soc 设计soc设计 uml实务手册_采用 USB4 技术升级 SoC 设计
- node中的js-核心模块
- C++语法:求vector中的最大值及其位置
- 还在用Tensorboard?机器学习实验管理平台大盘点
- CentOS 6.0正式版终于发布
- 学习笔记之04-第一个OC程序解析
- 震惊!!!CSS垂直居中竟然有这么多方法~
- pcie数据反_PCIe事务层の详解(一)
- 【基础】深度学习最常用的10个激活函数!(数学原理+优缺点)
- 通过二层交换机的局域网配置
- 自考启示,关于不紧急重要到紧急重要的改变
- 彻底理解 Window 和 WindowManager
- 通讯录总结-JAVA GUI- “婉君被通讯录吓晕”-第一版
- vscode 设置setting文件
- 10.1日NOIP模拟赛
- Linux 给指定用户添加定时任务
- Qt编写输入法V2018超级终结版
- 研究第一台电子计算机的过程,世界上第一台计算机诞生的过程