CTF-Crypto 密码原理及解密方法

CTF-Crypto 密码原理及解密方法

推荐综合加解密网址

许愿星 (wishingstarmoye.com)

CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码 (hiencode.com)

一.常见密码格式

(base64、32、16、36、58、62、85、91、92)

名称 密文 明文 特点
栅栏密码 fg2ivyo}{2s3_o@aw__rcl@ flag{w22_is_v3ry_cool} 1.长度一般不会太长 2.一般不会出现原来没有的字符(可能会出现用@打乱的现象)
base64 ZmxhZ3toZWxsb193b3JsZCF9IAo== flag{hello_world!} 后面会有=
base16 666C61677B6D795F6E616D655F482121487D flag{my_name_H!!H} 只由大写字母和数字组成
Unicode \u0066\u006c\u0061\u0067\u007b\u0069\u005f\u0077\u0069\u006c\u006c\u005f\u006b\u0069\u006c\u006c\u005f\u0079\u006f\u0075\u0021\u007d flag{i_will_kill_you!} 每一字符都用一个5位字符编码表示,并用\分割
urlencode %68%61%63%6b%65%72%44%4a hackerDJ
词频分析 Eg qnlyjtcnzydl z umaujejmjetg qeydsn eu z bsjdtx tw sgqtxegc al kdeqd mgeju tw yrzegjsoj zns nsyrzqsx kejd qeydsnjsoj Ew ltm fgtk jds kzl tw sgqtxegc m kerr csj jds wrzc kdeqd eu qrzuueqzr-qeydsn_eu_gtj_usqmnejl_du 长度很长
HTML编码 &ltscript&gtalert(123)&lt/script&gt <>实体化编码
ASCII<–>进制(ASCII编码转换) 二进制:01101000 01100101 01101100 01101100 01101111;十进制:104 101 108 108 111;十六进制:68 65 6c 6c 6f hello
进制之间的转换
名称 密文 明文 特点
AES256 92tNCj7EuKDSuz5GXez50Q== flag{hello} 基于三个分组密码构建的:AES-128,AES-192和AES-256。这些密码中的每一个都使用128位,192位或256位加密密钥对128位数据块进行加密和解密。
MD5 9dba6f1459dd1cd582d56fe3de8ae5ea flag{123} 32位加密密码,数字和小写字母
SHA1(SHA有很多) aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d hello SHA1是一种密码散列函数,可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。

二.古典密码

凯撒密码

凯撒密码一般适用于26个英文字母。根据偏移量来进行加密。如图所示,当偏移量=3。即是A-D,B-E。

在这里插入图片描述

在这里插入图片描述

1.原理

密钥:K

加密解密过程:

在这里插入图片描述

2.在线加密解密网站:
https://www.qqxiuzi.cn/bianma/kaisamima.php
http://www.metools.info/code/c70.html
http://www.atoolbox.net/Tool.php?Id=778

仿射密码

1.原理

密钥:(a,b),其中a与26互质。

加密解密过程:

在这里插入图片描述

仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母。

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
加密函数:E(x) = (ax + b) (mod m),其中 a与b互质,其中 a与m互质,m是编码系统中字母的个数(通常都是26)。

解密函数:D(x) = (a’x - b) (mod m),其中 a’是 a 在群的乘法逆元。

2.在26上所有与26互质元素的乘法逆元

在这里插入图片描述

3.在线加密解密网站:
http://www.atoolbox.net/Tool.php?Id=911

4.解密脚本:

import primefac
def affine_decode(c,a,b,origin="abcdefghijklmnopqrstuvwxyz"):
 r=""
 n=len(origin)
 ai=primefac.modinv(a,n)%n
 for i in c:
 if origin.find(i)!=1:
 r+=origin[(ai*(origin.index(i)-b))%n]
 else:
 r+=i
 return r
print affine_decode("ihhwvcswfrcp",5,8)

def affine_guessab(m1,c1,m2,c2,origin="abcdefghijklmnopqrstuvwxyz"):
 x1=origin.index(m1)
 x2=origin.index(m2)
 y1=origin.index(c1)
 y2=origin.index(c2)
 n=len(origin)
 dxi=primefac.modinv(x1-x2,n)%n
 a=dxi*(y1-y2) % n
 b=(y1-a*x1)%n
 return a,b
print affine_guessab("a","i","f","h")

埃特巴什码

1.加密解密原理:使用字母表倒数第n个字母代替第n个字母

在这里插入图片描述

培根密码

1.加密解密原理:使用两种字符,每一段长度为5.

在这里插入图片描述

2.在线加密解密网址:
https://tool.bugku.com/peigen/

棋盘密码

1.加密原理:

波利比奥方阵

在这里插入图片描述

假设我们需要发送明文信息“Hello”,找到H对应2行3列,则加密为23,e加密为15,以此类推,得到密文:2315 31 31 34。

【双密码(Bifid Cipher)】

特征/特点:双密码(Bifid Cipher)结合了波利比奥斯方阵换位密码,并采用分级实现扩散,这里的“双”是指用2个密钥进行加密。双密码是由法国Felix Delastelle发明,除此之外Felix Delastelle还发明了三分密码(Trifid Cipher),四方密码(Four-Square Cipher)。还有一个两方密码(Two-Square)与四方密码类似,共轭矩阵双密码(Conjugated Matrix Bifid Cipher)也是双密码的变种。

在线解密&工具: http://www.practicalcryptography.com/ciphers/adfgx-cipher/

ADFGX密码

在这里插入图片描述

这样加密的话Hello的密文就是:DD XF AG AGDF。

ADFGVX密码

在这里插入图片描述

希尔密码

1.加密解密原理:

使用每个字母在字母表中的顺序作为其对应数字。再将铭文转换为

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小武搞渗透

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值