CTF-Crypto

article/2025/8/23 19:55:30

目录

Quoted-printable

Rabbit

栅栏加密

RSA

凯撒加密

猪圈密码

uuencode

Morse(莫尔斯电码)

异或

MD5爆破

 RSA


近期又开始接触到了CTF中的Crypto方向,然后整理一下自己遇到的各种的加密的方式。

Quoted-printable

quoted-printable编码方法适合所传输数据中只有少量的非ASCII编码,用一个等号=后面加两个数字字符来表示一个非ASCII码字符

例如:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6

在线工具:

Quoted-printable编码|Quoted-printable解码|Quoted-printable编码原理介绍--查错网

Rabbit

Rabbit 是一种高速流密码, 使用一个 128 位密钥和一个 64 位初始化向量。 该加密算法的核心组件是一个位流生成器,该流生成器每次迭代都会加密 128 个消息位。

它的主要的组成部分为:

  •         26个大小写的英文字母、=、+、/;

        以U2FsdGVkX1开头;

        结尾可能存在=号,也可能不存在。

在线工具:

Rabbit加密-Rabbit解密-在线Rabbit加密解密工具

栅栏加密

        栅栏加密法是一种比较简单快捷的加密方法。栅栏加密法就是把要被加密的文件按照一上一下的写法写出来,再把第二行的文字排列到第一行的后面。相应的,破译方法就是把文字从中间分开,分成2行,然后插入。栅栏加密法一般配合其他方法进行加密。

比如有这样的一段明文:hello world

首先就是将其中的空格去掉,变成helloworld;然后数一下一共有多少个字符------10个,然后我们就可以将它们分成两行,每一行5个字符。变成:

hello

world

之后就是按照一上一下的写法写出来,变成hweolrllod。适当的加上点空格,建议一行有几个字就在第几个字处打空格;

栅栏加密在线工具:

栅栏密码转换器_栅栏密码解密加密_栅栏密码在线翻译

RSA

RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK 。

      RSA算法的具体描述如下:

(1)任意选取两个不同的大素数p和q计算乘积;\psi (n)=(p-1)*(q-1);n=p*q;

(2)任意选取一个大整数e,满足gcd(e,\psi (n))=1,也就是说,e和\psi (n)的最大公约数为1,

 ,整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用) [5]  ;

(3)确定的解密钥d,满足(de)mod\psi (n)=1,即de=k\psi (n)+1,k>=1是一个任意的整数,所以,若知道e和\psi (n)很容易计算出d。

(4)公开整数n和e,秘密保存d;

(5)将明文m(m<n是一个整数)加密成密文c,加密算法为c=E(m)=m^{^{e}}modn 

(6)将密文c解密为明文m,解密算法为 m=D(c)=c^{^{d}}modn

然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

可以使用工具

这个工具在使用的时候,应该注意的地方就是Public Exponent(E)他要求我们输入的值时十六进制,所以如果公钥e=17的话,那么对应的十六进制为11。还有就是Number base设置为10进制。

凯撒加密

凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。凯撒加密法的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ

密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

例如:BUUCTF-大帝的秘密武器1

拿到题目提示我们是一个zip的文件,ok,改后缀名,解压得到:

使用在线的凯撒解密工具发现偏移密钥为13的时候,解密出的字符串为SECURITY(安全),然后使用偏移密钥13,对comechina进行加密,得到的就是flag。

中文电码

中文电码表采用了四位阿拉伯数字作代号,从0001到9999按四位数顺序排列,用四位数字表示最多一万个汉字、字母和符号。

例题BUUCTF-信息化的时代 1

初步判断为中文电码,使用在线中文电码转换工具。

中文电码转换 - 在线工具栏

​得到flag就是计算机要从娃娃抓起。

猪圈密码

猪圈密码是一种以格子为基础的简单替换密码。早在1700年代,共济会常常使用这种密码保护一些私密纪录或者用来通讯,也称作共济会密码。

BUUCTF-萌萌哒的八戒

传统的猪圈密码对照表如下:

 拿题目所给的图片进行对照即可得出密码。

uuencode

UUENCODE是将二进制文件转换为文本文件的过程,转换后的文件可以通过纯文本e-mail进行传输,在接收方对该文件进行uudecode,即将其转换为初始的二进制文件。

在线工具:CTF在线工具-在线UUencode编码|UU编码|UUencode解码|UUencode编码原理|UUencode编码算法

例题:BUUCTF-unencode

 直接就可以得到flag。

Morse(莫尔斯电码)

电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。由两种基本信号和不同的间隔时间组成:短促的点信号" .";保持一定时间的长信号"—"。

例题:BUUCTF-Morse

题目已经提示我们Morse,所以就是用摩斯电码解密,这里的/代表着空格的意思,直接脚本replace就可以了。

解密的结果为61666374667b317327745f73305f333435797d。

应该是十六进制,转为字符串就好了,便得到了密码。 

异或

以BUUCTF-异性相吸为例题

 拿到题目看到key.txt和密文.txt,放到010editor里面。

 选中将其二进制文本复制出来,进行异或运算。(选中->编辑->复制为->复制为二进制文本)

mw='0110000101110011011000010110010001110011011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011100010111011101100101011100110111000101100110'
key='0000011100011111000000000000001100001000000001000001001001010101000000110001000001010100010110000100101101011100010110000100101001010110010100110100010001010010000000110100010000000010010110000100011000000110010101000100011100000101010101100100011101010111010001000001001001011101010010100001010000011011'result=""for i in range(len(key)):if mw[i]==key[i]:result+='0'else:result+='1'
print(result)

将运行结果再导入010editor中,新建->新建十六进制文本->编辑->粘贴自->粘贴自二进制文本。

 便可以得到flag 

MD5爆破

以BUUCTF-还原大师 1为例:

 这个题说的很明显,就是问号的部分替换为大写字母,然后使用md5加密,加密的结果在转换为大写。

上脚本,由于自己是小白,自己写的不如大佬们写的好,轻点喷。

#MD5加密
import hashlibstr1='TASC?O3RJMV?WDJKX?ZM'
for i in range(65,91):temp1=str1.replace('?',chr(i),1)    #第三个参数的意思是替换的次数不超过1次。for j in range(65,91):temp2=temp1.replace('?',chr(j),1)for k in range(65,91):temp3=temp2.replace('?',chr(k),1)hl=hashlib.md5()hl.update(temp3.encode(encoding='utf8'))md5=hl.hexdigest().upper()  #转换为大写字母if md5[:4]=='E903': #如果开头的四个字母是E903 在进行输出print("加密结果:"+str(md5))

 RSA

关于RSA的部分,之后再整理吧,做到了很多RSA的题。


http://chatgpt.dhexx.cn/article/87JJLCeA.shtml

相关文章

CTF工具-seccomp-tools

seccomp-tools可以分析程序的seccomp状态&#xff0c;哪些被系统被禁用了安装 安装流程&#xff1a; sudo apt install gcc ruby-dev gem install seccomp-tools 之后便可直接分析程序的seccomp状态

Crypto(CTF)

Crypto方向CTF笔记 一些知识 一些知识 -ZIP文件的16进制开头是 504B&#xff08;0xPK&#xff09; -观察各种明显的进制 -wireshark异常流量分析&#xff0c;寻找data长度异常的包&#xff08;将包的大小进行排序&#xff09;。 -ZERO ONE&#xff08;01&#xff09;组合的…

CSK

参考博文&#xff1a;https://blog.csdn.net/qq_32763701/article/details/83691393 以及知乎大佬YaqiLYU的专栏 目标视觉跟踪(Visual Object Tracking)&#xff0c;大家比较公认分为两大类&#xff1a;生成(generative)模型方法和判别(discriminative)模型方法&#xff0c;目…

cryptography

出现这个错误是因为缺少cryptography包&#xff0c;可以使用 pip install cryptography 安装cryptography包&#xff0c;如果安装cryptography失败 先检查一下自己的pip包是否为最新版本&#xff0c;在settings>Project>Project Interpreter里查看pip的版本 接下来使用ea…

C#---CSkin

一、都有哪些共功能 二、下载步骤 1、这个CSkin的下载和使用方法的地址&#xff1a;http://www.cskin.net/ 2、找到下载&#xff0c;直接点击下载 使用教程&#xff1a; 1.工具箱右键-新建项-命名CSkin。 2.将CSkin.dll拖到新建的工具箱栏里。 3.控件添加完毕&#xff0c;…

winfrom界面美化(cskin)

1.cskin控件的引用 2.可能会产生闪屏的问题 附&#xff1a; private void SetStyles() { base.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDo…

CSkin界面库案例分享

【小助手Demo】高仿彗星小助手-2014.8.26更新 http://bbs.cskin.net/forum.php?modviewthread&tid209&fromuid2 【Metro风格】Metro窗体DEMO-14.7.2版本 http://bbs.cskin.net/forum.php?modviewthread&tid84&fromuid2 【动画特效界面】动画特效组件使用DE…

CSkin界面库窗体设置

CSkin界面库是一款免费的C#界面库&#xff0c;具有小巧免费&#xff0c;拓展性强&#xff0c;容易上手等优点&#xff0c;适合用于中小规模软件的开发。使用这个界面一年多了&#xff0c;但一般最多也只是改改颜色之类的简单应用&#xff0c;官网也只给了简单的例子&#xff0c…

C# --CSkin的使用教程

下载和安装&#xff1a; http://www.cskin.net/ 在VS的工具箱右击&#xff0c;新建选项卡&#xff0c;比如CSkin4&#xff0c;在次选项卡空白处右击“选择项” 会弹出此窗口&#xff0c;选择浏览&#xff0c;找到cskin.dll&#xff0c;确定。 利用CSkin的第一步&#xff1a;…

C#窗体美化(CSKin组件)

写完了Web的WMS系统和OA系统&#xff0c;今天要开始写车载终端的程序了。之前给客户写ERP与MES的接口或者ERP与WMS等接口的时候用的都是窗体&#xff0c;所以这次直接使用窗体来写。不过窗体的话大家都知道比较丑&#xff0c;今天写学习一下使用CSKin组件来美化页面。 CSKin官方…

winform UI界面库CSkin

2022年再提到winform可能部分小伙伴要说 大清都亡了…哈哈 但是在工业领域winform还是有一席之地的&#xff0c;就是界面丑了点&#xff0c;今天给大家分享个界面库Cskin&#xff0c;其实网上也有很多界面库但是大部分是收费的&#xff0c;这个cskin就很良心了完全免费。 下载…

利用CSkin组件设计漂亮的WinForm登录界面

众所周知&#xff0c;WinForm具有快速开发的优点&#xff0c;但是美观方面一直被人诟病&#xff0c;一般美化都是采用第三方的组件来满足美化效果&#xff0c;这里我也利用Cskin组件来设计一个具有一定美感的登录界面&#xff0c; CSkin下载 CSkin的使用你可以自行查看下载后…

CSkin的使用

&#xff08;1&#xff09;前言 我相信学过C#过的朋友都会有一点觉得它的控件不什么好美化&#xff0c;而今天&#xff0c;小编则是教你们什么使用CSKIn这个好东西&#xff01; &#xff08;2&#xff09;这个CSkin的下载和使用方法的地址&#xff1a;http://www.cskin.net/ …

C#界面库CSkin 使用简介

.net平台&#xff0c;c# 语言&#xff0c;开发很方便&#xff0c;支持拖拉拽生成界面&#xff0c;程序员只需要专注自己的业务逻辑即可&#xff0c;大大节省了开发时间。 但是呢&#xff0c;原生系统的界面比较丑陋&#xff0c;不太友好&#xff0c;需要再美化一下。.net平台因…

SpringMVC 基础教程 简单入门实例

spring MVC 入门教程二&#xff1a; 一个简单的入门实例教程 该实例的源码和实例中的jar 源码&#xff1a;http://download.csdn.net/detail/swingpyzf/5348563 所需要的jar: http://download.csdn.net/detail/swingpyzf/5348531 另外一篇关于SpringMVC 文件上传&#xff…

史上最全SpringMVC教程,从零开始带你深入♂学习(一)——SpringMVC快速入门、注解开发

SpringMVC框架(一)SpringMVC快速入门、注解开发 SpringMVC Spring MVC是Spring Framework的一部分&#xff0c;是基于Java实现MVC的轻量级Web框架。 Spring MVC的特点&#xff1a; 领取资料 1. 轻量级&#xff0c;简单易学 2. 高效 , 基于请求响应的MVC框架 3. 与Spring兼容…

最全面的SpringMVC教程(四)——Controller 与 RestFul

前言 本文为 【SpringMVC教程】Controller 与 RestFul 相关内容介绍&#xff0c;具体将对控制器Controller&#xff0c;实现Controller接口&#xff0c;使用注解Controller&#xff0c;RequestMapping及RestFul 风格&#xff08;包括&#xff1a;Rest架构的主要原则、什么是Res…

SpringMVC教程(一):环境搭建

环境&#xff1a;eclipsetomcat8.5 第一步&#xff1a;jar准备&#xff08;基础包&#xff09;&#xff1a; commons-logging-1.1.1.jar jstl-1.2.jar spring-aop-4.0.4.RELEASE.jar spring-aspects-4.2.6.RELEASE.jar spring-beans-4.0.4.RELEASE.jar spring-context-4.0.4.RE…

myeclipse配置springmvc教程

之前一直是使用Eclipse创建Web项目&#xff0c;用IDEA和MyEclipse的创建SpringMVC项目的时候时不时会遇到一些问题&#xff0c;这里把这个过程记录一下&#xff0c;希望能帮助到那些有需要的朋友。我是用的是MyEclipse2017 CI 3&#xff0c;相近版本应该都差不多。至于其他版本…

SpringMVC教程下篇

SpringMVC教程下篇 内容包括&#xff1a; 绑定数组&#xff1a; 将表单数据绑定到list&#xff1a; RequestMapping注解的三种用法&#xff1a; Controller方法返回值&#xff1a; 乱码问题总结 异常处理&#xff1a; 照片上传&#xff1a; RESTFUL支持&#xff…