CTF入门学习笔记——Crypto密码(古典密码)

news2025/1/22 23:02:07

文章目录

  • CTF入门学习笔记——Crypto密码(古典密码)
    • 凯撒密码
      • 看我回旋踢
    • 摩斯密码
      • 摩斯
    • 维吉尼亚密码
      • Vigenère
    • 栅栏密码
      • 篱笆墙的影子
    • 栅栏密码
      • 篱笆墙的影子
    • 猪圈密码
    • 待补充

CTF入门学习笔记——Crypto密码(古典密码)

🚀🚀这篇笔记是我对自己初步学习CTF的一个小总结,主要涉及了Crypto板块的古典密码,这部分内容比较简单,利用一些工具加上观察分析一般都能解决,但是古典密码一般会和编码结合起来一起考察,所以此篇笔记主要起到一个分析总结的作用。

凯撒密码

🚀🚀凯撒密码算是古典密码里面非常有名的密码了,相传凯撒大帝曾经使用使用这种密码与下属沟通,所以命名为凯撒密码。其核心逻辑就是将英文字母进行规律替换,在当时那个时代无疑是一种好的加密方式,但是现在看来他是极易被破解的。我们可以也使用词频分析来分析破解(http://quipqiup.com)

🚀🚀接下来我们来看一道例题:

看我回旋踢

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀我们下载附件,得到一个文本文件,如下所示:

synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}

🚀🚀我们观察一下,很像我的的flag,但是字母有些不同,经过分析synt,得到这就是移位13的flag,所以我们使用在线工具,将位移设置成13,得到结果:

flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}


摩斯密码

🚀🚀摩斯密码我们大家也熟悉,就是我们的电报。他的核心特点就是有两种不同的元素(不一定是.-,还可能是01,AB之类的)和间隔(空格或者/),当我们看到上面特征时,就可以考虑摩斯密码了。

在这里插入图片描述

摩斯

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件得到一串点横,然后有空格隔开,大概率为摩斯密码。

… .-… — …- . -.-- — …-

🚀🚀解码结果如下所示:

ILOVEYOU


维吉尼亚密码

🚀🚀维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。可以用来防止词频攻击。

在这里插入图片描述

🚀🚀接下来我们看一道题目,来加强一下认知:

Vigenère

🚀🚀题目:[AFCTF 2018]Vigenère | NSSCTF

🚀🚀我们可以看到附件中有这样一串字母以及代码,明显就是我们需要的flag:

Zy daf sjle Wafyyo drvnvdrtv gh dif Crtl nrqfy boe zqm trtwjy kf gnnqr blhawas, ntm bhr gogojt ntm xalsgfn kf gnnqr fgnsleef.

luig vy cxwpf{Jnxwobuqg_O_Cogiqi!}

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
	freopen("flag.txt","r",stdin);
	freopen("flag_encode.txt","w",stdout);
	char key[] = /*SADLY SAYING! Key is eaten by Monster!*/;
	int len = strlen(key);
	char ch;
	int index = 0;
	while((ch = getchar()) != EOF){
		if(ch>='a'&&ch<='z'){
			putchar((ch-'a'+key[index%len]-'a')%26+'a');
			++index;
		}else if(ch>='A'&&ch<='Z'){
			putchar((ch-'A'+key[index%len]-'a')%26+'A');
			++index;
		}else{
			putchar(ch);
		}
	}
	return 0;

🚀🚀分析代码可知是维吉尼亚密码,如果我们知道密钥,也就好解决了,但是目前没有给我们,所以我们采用暴力破解的办法(Vigenere Solver | guballa.de),最终能得到结果:

flag is afctf{Whooooooo_U_Gotcha!}

🚀🚀这便是我们需要的flag。


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位…分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


栅栏密码

🚀🚀栅栏密码就是把要加密的明文分成N个一组,然后把每组的第一位、第二位…分别提取出来拼接在一起。解密的话,就逆操作即可。

篱笆墙的影子

🚀🚀题目:BUUCTF在线评测 (buuoj.cn)

🚀🚀打开附件,得到如下信息:

felhaagv{ewtehtehfilnakgw}

🚀🚀我们简单分析一下前面8个字母,发现两个一组能拼出flag,所以应该是两个字母一组,可以自己分析,也可以利用工具](https://www.qqxiuzi.cn/bianma/zhalanmima.php)分析,结果如下所示。

flag{wethinkwehavetheflag}


猪圈密码

🚀🚀猪圈密码(Pigpen cipher,亦称朱高密码、共济会密码)是一种以格子为基础的简单替代式密码。即使使用符号,也不会影[密码分析,亦可用在其它替代式的方法。

在这里插入图片描述

待补充

🚀🚀CTF中的古典密码远远不止这些,不够现在一般都是现代密码偏多。我会在接下来的学习中不断补充,同时也希望我能一直坚持下去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/996472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

领域驱动设计:DDD重构中台业务模型

文章目录 如何避免重复造轮子&#xff1f;如何构建中台业务模型&#xff1f; 如何避免重复造轮子&#xff1f; 要避免重复建设&#xff0c;就要理解中台的理念和思想。“中台是企业级能力复用平台”&#xff0c;“复用”用白话说就是重复使用&#xff0c;就是要避免重复造轮子…

深入解析OLED透明屏的工作原理与优势,智能家居的未来之选

OLED透明屏作为一项突破性的显示技术&#xff0c;不仅具备出色的视觉效果&#xff0c;还带来了全新的功能和应用。 在这篇文章中&#xff0c;尼伽将深入探讨OLED透明屏的功能特点&#xff0c;介绍其在各个领域的广泛应用&#xff0c;并提供实用的案例和数据&#xff0c;希望看…

认识 Express

1. 初识 Express 1.1 Express 简介 1. 什么是 Express 官方给出的概念&#xff1a;Express 是基于 Node.js 平台&#xff0c;快速、开放、极简的 Web 开发框架。 通俗的理解&#xff1a;Express 的作用和 Node.js 内置的 http 模块类似&#xff0c;是专门用来创建 Web …

“批量随机字母命名文件,轻松管理你的文件库“

你是否曾经遇到过文件命名混乱&#xff0c;难以管理的问题&#xff1f;为了解决这个问题&#xff0c;我们推出了一款全新的文件改名工具&#xff0c;它可以帮助你批量给文件名添加一个随机字母&#xff0c;让你的文件库更加有序、易于管理。 首先第一步&#xff0c;我们要进入…

Python 交易指南:利用 RSI

一、说明 RSI是相对强弱指数&#xff08;Relative Strength Index&#xff09;的缩写&#xff0c;是一种技术指标。该指标是用来测量股票或其他交易品种的价格波动强度和速度的&#xff0c;属于动量型指标。RSI常用于技术分析和交易策略中&#xff0c;可以帮助交易者判断市场的…

JAVA 的四种访问权限

在Java编程中&#xff0c;访问权限是非常重要的概念&#xff0c;因为它可以保证代码的安全性和封装性。访问权限有四种&#xff0c;分别是public、protected、default和private。 private&#xff1a;如果一个类的方法或者变量被private修饰&#xff0c;那么这个类的方法或者变…

程序执行的四个阶段

程序执行的四个阶段 对于一段helloc.c的程序 #include <stdio.h>int main() {printf("hello, world\n");return 0; }为了在系统上运行程序&#xff0c;每条C语句都必须被其他程序转化为一系列的低级机器语言指令。然后这些指令按照一种称为可执行目标程序的格…

网络层--IP协议

引入&#xff1a; IP协议主要解决什么问题呢&#xff1f; IP协议提供一种将数据从主机&#xff21; 发送到 主机&#xff22;的能力。&#xff08;有能力不一定能做到&#xff0c;比如小明很聪明&#xff0c;可以考100分&#xff0c;但是他也不是每次搜能考100分&#xff0…

持安科技入选数说安全《2023中国网络安全市场年度报告》

近日&#xff0c;网络安全产业研究平台数说安全发布《2023中国网络安全市场年度报告》&#xff0c;报告共分为158页核心报告&#xff0c;及番外篇《网安融资新星及融资过亿企业介绍》&#xff0c;作为以甲方身份创业的零信任办公安全明星企业&#xff0c;持安科技以网安融资新星…

【leetcode 力扣刷题】重复叠加字符串匹配

重复叠加字符串匹配 686. 重复叠加字符串匹配 686. 重复叠加字符串匹配 题目链接&#xff1a;686. 重复叠加字符串匹配 题目内容&#xff1a; 理解题意&#xff0c;可以发现题目还是要求我们做字符串匹配。只是查询串不是简单的a&#xff0c;而是a的叠加&#xff0c;并且这个…

国外LEAD收款渠道介绍:Wise收款教程

在国内做国外的Affiliate marketing&#xff0c;收款还是有些麻烦的。以前用Payoneer挺方便&#xff0c;包括clickbank&#xff0c;amazon等联盟都挺顺利的回款&#xff0c;不过自从Digitalstore24的一笔联盟款发送之后&#xff0c;没有到账&#xff0c;然后就收到款项需要审核…

windows下安装redis扩展库

1.根据PHP版本号&#xff0c;编译器版本号和CPU架构 选择php_redis和php_igbinary文件(如果是选择线程的情况下需要再去配置php5ts.dll) windows.php.net - /downloads/pecl/releases/redis/ windows.php.net - /downloads/pecl/releases/igbinary/ php_igbinary-3.1.2-7.2-…

webgl与webgpu比较

绘制流程 webgl无论是操作着色器&#xff0c;还是操作 VBO&#xff0c;亦或者是创建一些 Buffer、Texture 对象&#xff0c;基本上都得通过 gl 变量一条一条函数地走过程&#xff0c;顺序是非常讲究的。每一次调用 gl.xxx 时&#xff0c;都会完成 CPU 到 GPU 的信号传递&#…

【LeetCode】210. 课程表 II——拓扑排序

题目链接&#xff1a;210. 课程表 II 题目描述&#xff1a; 现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如…

CAPL自动化测试通信电压

通信电压 1、系统框架2、控制电压模块3、检查通信是否正常4、检查电压标准5、CAPL 控制VH1160的函数 分三个模块 控制电源模块&#xff0c;分析通信是否正常模块&#xff0c;判断电压是否符合标准。 1、系统框架 应该分为三大模块&#xff1a;控制电压模块&#xff0c;检查通…

国内 Docker 镜像加速器和国内公共镜像仓库那些事

前言 首先我们知道&#xff0c;全球最大的公共镜像仓库是 Docker 公司自己搭建的 Docker Hub&#xff0c;也是权威性最高的&#xff0c;里面包含了各种各样的官方镜像&#xff0c;Docker Hub 为每一个注册用户提供了个人镜像仓库服务&#xff0c;该个人镜像仓库是公共的。 以上…

如何用echarts画一个好看的饼图

前言 最近有个需求&#xff0c;需要绘制一个饼图&#xff0c;为此我根据这次需求来整理了一下关于 echarts 饼图绘制的一些知识点&#xff0c;在这次需求中我需要用到的属性我会详细讲解&#xff0c;其他的属性我会粗略地说一下&#xff08;并加入其他博主的文章的跳转&#x…

【C++杂货铺】探索stack和queue的底层实现

文章目录 一、stack的介绍和使用1.1 stack的介绍1.2 stack的使用1.2.1 最小栈1.2.2 栈的压入、弹出序列1.2.3 逆波兰表达式求值1.2.4 用栈实现队列 二、queue的介绍和使用2.1 queue的介绍2.2 queue的使用2.2.1 二叉树的层序遍历 三、模拟实现3.1 stack模拟实现3.2 queue模拟实现…

数分面试题2-牛客

1、面对大方差如何解决 1&#xff0c;AB实验场景下&#xff0c;如果一个指标的方差较大表示它的波动较大&#xff0c;那么实验组和对照组的显著差异可能是因为方差较大即随机波动较大。解决方法有&#xff1a;PSM方法、CUPED(方差缩减) PSM代表"Propensity Score Matchin…

【C进阶】分析 C/C++程序的内存开辟与柔性数组(内有干货)

前言&#xff1a; 本文是对于动态内存管理知识后续的补充&#xff0c;以及加深对其的理解。对于动态内存管理涉及的大部分知识在这篇文章中 ---- 【C进阶】 动态内存管理_Dream_Chaser&#xff5e;的博客-CSDN博客 本文涉及的知识内容主要在两方面&#xff1a; 简单解析C/C程序…