MiguoQAQ
文章5
标签2
分类0

文章归档

CTF 常见密码编码及其解决方案

CTF 常见密码编码及其解决方案

CTF 常见密码编码及其解决方案#

一些工具(在线)#

CyberChef:very very goooood

sojson.com

CTF在线工具

随波逐流工作室:very good

千千秀字:里面有一些很多自创的奇怪加密算法……

一些工具(离线)#

CyberChef[随波逐流]CTF编码工具

计算机常用编码类#

字符编码wiki

ASCII编码#

wiki

ASCII(发音: /ˈæski/),American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准**ISO/IEC 646**。

URL编码#

wiki

百分号编码(英语:Percent-encoding),又称URL编码(URL encoding)是特定上下文的统一资源定位符(URL)的编码机制,实际上也适用于统一资源标志符(URI)的编码。也用于为application/x-www-form-urlencoded MIME准备数据,因为它用于通过HTTP的请求操作(request)提交HTML表单数据。

Base家族#

Base64

wiki

Base64(基底64)是一种基于64个可打印字符来表示二进制数据的表示方法。由于log2⁡64=6,所以每6个比特为一个单元,对应某个可打印字符。3个字节相当于24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Za-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。

Base32

wiki

此外还有Base16,Base36,Base58,Base62,Base85,Base91,Base92……

Shellcode编码#

wiki

shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制之机械码,以其经常让攻击者获得shell而得名。shellcode常常使用机器语言编写,由于现代电脑系统基本上启用NX位元保护使得机械码无法直接执行,可透过返回导向编程编写shellcode。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机械码,让电脑可以执行攻击者的任意指令。

1
特征:Shellcode编码中含有\x,形如:\x66\x6c\x61\x67

UUencode#

wiki

uuencode这个名字是衍生自”Unix-to-Unix encoding”,原先是Unix系统下将二进制的资料借由uucp邮件系统传输的一个编码程式,是一种二进制到文字的编码。

1
2
特征:对于长消息来说:每行开头都是M。
对于短消息特征就是字符串有'($<>)这类字符

XXEncode编码#

wiki

xxencode是一种二进制到文本的编码类似于uuencode,它仅使用字母数字字符以及加号和减号。它的发明是为了以一种能够在字符集转换中幸存的格式传输文件,特别是在ASCII和IBM 大型机上使用的EBCDIC编码之间。

1
2
特征:大小写字母,数字以及+-字符
2NalVNk++

Unicode编码#

wiki

Unicode,全称为Unicode标准(The Unicode Standard),其官方机构Unicode联盟所用的中文名称为统一码,又译作万国码统一字元码统一字符编码,是信息技术领域的业界标准,其整理、编码了世界上大部分的文字系统,使得电脑能以通用划一的字符集来处理和显示文字,不但减轻在不同编码系统间切换和转换的困扰,更提供了一种跨平台的乱码问题解决方案。

1
特征:\u5b89\u5c0f\u742a

Escape编码#

escape采用ISO Latin字符集对指 定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。

1
2
3
特点:
有一组 字符 String ss = "%u5179",特点是 以%u开头,后接四位16进制数字该字符是4个数字表示一个字符。
或者是%开头,后接 //数字//小写字母//大写字母

Quoted-printable编码#

wiki

Quoted-printableQP encoding,没有规范的中文译名,可译为可打印字符引用编码使用可打印字符的编码。Quoted-printable是使用可打印的ASCII字符(如字母、数字与“=”)表示各种编码格式下的字符,以便能在7-bit数据通路上传输8-bit数据, 或者更一般地说在非8-bit clean媒体上正确处理数据。这被定义为MIME content transfer encoding,用于e-mail。

1
特征:=开头

字符值引用#

wiki

字符值引用(numeric character reference, NCR)是在标记语言SGML以及派生的如HTMLXML中常见的一种转义序列结构,用来表示Unicode通用字符集 (UCS)中的单个字符. NCR可以表示在一个特定文档中不能直接编码字符,而该标记语言阅读器软件把每个NCR当作一个字符来处理。

1
特征:&#开头

RTF富文本格式#

wiki

富文本格式Rich Text Format)即RTF格式,又称多文本格式,是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。

1
特征:\rtf开头,中间含有\开头的其他组合以及{}

哈希#

wiki

算法名称 输出大小(bits) 内部大小 区块大小 长度大小 字符尺寸 碰撞情形
HAVAL 256/224/192/160/128 256 1024 64 32
MD2 128 384 128 No 8 大多数
MD4 128 128 512 64 32
MD5 128 128 512 64 32
PANAMA 256 8736 256 32
RadioGatún 任意长度 58字 3字 1-64
RIPEMD 128 128 512 64 32
RIPEMD-128/256 128/256 128/256 512 64 32
RIPEMD-160/320 160/320 160/320 512 64 32
SHA-0 160 160 512 64 32
SHA-1 160 160 512 64 32 有缺陷
SHA-256/224 256/224 256 512 64 32
SHA-512/384 512/384 512 1024 128 64
Tiger(2)-192/160/128 192/160/128 192 512 64 64
WHIRLPOOL 512 512 512 256 8

一些在线解密网站:

https://www.sojson.com/hash.html

https://www.somd5.com/

python相关库:hashlib

替换密码#

ROT加密#

wiki

ROT13回转13位,英语:rotate by 13 places,有时也记为ROT-13)是一种简易的替换式密码。ROT13 也是过去在古罗马开发的凯撒加密的一种变体。ROT13是它自己本身的逆反。

1
2
3
| ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
| ---------------------------------------------------- |
| NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm |

检查字符字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可

rot5,rot18等同理

rot47在26个字母基础上扩大范围至ascii可打印字符,ascii范围为33-126(原因是由于0-32以及127与字符表示无关)

凯撒密码#

wiki

凯撒密码(英语:Caesar cipher),或称凯撒加密凯撒变换变换加密,是一种最简单且最广为人知的加密技术。凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文

当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

变异凯撒#

埃特巴什码#

wiki

埃特巴什码(Atbash Cipher)是由熊斐特博士发现的密码,其最后一个字母代表第一个字母,倒数第二个字母代表第二个字母

1
2
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
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

Hill密码(希尔密码)#

wiki

希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。

每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。

注意用作加密的矩阵(即密匙)在{\displaystyle \mathbb {Z} _{26}^{n}}必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。

在线解密:http://www.atoolbox.net/Tool.php?Id=914

仿射密码#

wiki

仿射密码是一种替换密码。它是一个字母对一个字母的。

它的加密函数是{\displaystyle e(x)=ax+b{\pmod {m}}},其中

  • {\displaystyle a}{\displaystyle m}互质。
  • {\displaystyle m}是字母的数目。

解码函数是{\displaystyle d(x)=a^{-1}(x-b){\pmod {m}}},其中{\displaystyle a^{-1}}{\displaystyle a}{\displaystyle \mathbb {Z} _{m}}群的乘法逆元。

仿射密码 为 单表加密的一种,字母系统中所有字母都藉一简单数学方程加密,对应至数值,或转回字母。 其仍有所有替代密码之弱处。所有字母皆借由方程 {\displaystyle (ax+b)\mod (26)}加密, {\displaystyle b} 为移动大小。

在线解密:http://www.hiencode.com/affine.html

奇奇怪怪的加密#

UTF-8,unicode乱码#

锟斤拷,烫烫烫

注意编码格式捏

零宽字符隐写#

零宽度字符隐写术(Zero-Width Space Steganography)

将隐藏消息编码和解码为不可打印/可读字符。

字符包括:

零宽度空格(\u200b)

零宽度非连接符(\u200c)

零宽度连接符(\u200d)

从左至右书写标记(\u200e)

从右至左书写标记(\u200f)

解密

文本加密字母/汉字等等(有规律,写完文档去爆破一下)#

自创算法,但会在比赛里出现?

1
特征:一个字母加密后变为两个字母,相邻字母相关,结尾有=

https://www.qqxiuzi.cn/bianma/wenbenjiami.php

社会主义核心价值观编码#

用核心价值观来说些黑话(bushi)

https://sym233.github.io/core-values-encoder/

http://www.hiencode.com/cvencode.html

https://atool.vip/corevalue/

http://www.hiencode.com/cvencode.html

与佛论禅#

解密的时候不要忘记加上“佛曰”两个字哦

在线加解密

http://hi.pcmoe.net/buddha.html

https://www.keyfc.net/bbs/tools/tudoucode.aspx

https://talk-with-buddha.netlify.app/

https://ctf.bugku.com/tool/todousharp

https://wtool.com.cn/buddha.html

与熊论道#

在线解密http://hi.pcmoe.net/

兽音#

也可以自定义兽音

在线加解密

https://roar.iiilab.com/

http://hi.pcmoe.net/roar.html

云影密码#

有1,2,4,8这四个数字,可以通过加法来用这四个数字表示0-9中的任何一个数字,列如0=28, 也就是0=2+8,同理7=124, 9=18。这样之后再用1-26来表示26个英文字母,就有了密文与明文之间的对应关系。引入0来作为间隔,以免出现混乱。所以云影密码又叫“01248密码”。

解密脚本:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python
# -*- coding=utf8 -*-
"""
# @Author : pig
# @CreatedTime:2019-11-2423:54:02
# @Description :
"""


def de_code(c):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
flag = []
c2 = [i for i in c.split("0")]
for i in c2:
c3 = 0
for j in i:
c3 += int(j)
flag.append(dic[c3 - 1])
return flag

def encode(plaintext):
dic = [chr(i) for i in range(ord("A"), ord("Z") + 1)]
m = [i for i in plaintext]
tmp = [];flag = []
for i in range(len(m)):
for j in range(len(dic)):
if m[i] == dic[j]:
tmp.append(j + 1)
for i in tmp:
res = ""
if i >= 8:
res += int(i/8)*"8"
if i%8 >=4:
res += int(i%8/4)*"4"
if i%4 >=2:
res += int(i%4/2)*"2"
if i%2 >= 1:
res += int(i%2/1)*"1"
flag.append(res + "0")
print ("".join(flag)[:-1])

c = input("输入要解密的数字串:")
print (de_code(c))
m_code = input("请输入要加密的数字串:")
encode(m_code)

Rabbit密码#

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

1
2
特征:1.组成:26个大小写英文字母
2.以U2FsdGVkX1开头,可能以=结尾

在线解密:https://www.sojson.com/encrypt_rabbit.html

非对称密码加密#

RSA#

wiki

在线解密:https://www.bejson.com/enc/rsa/

DSA#

wiki

在线解密:https://try8.cn/tool/cipher/dsa

对称密码加密#

AES#

wiki

在线解密:https://tool.lmeee.com/jiami/aes

DES#

wiki

在线解密:https://www.sojson.com/encrypt_des.html

RC4#

wiki

在线解密:https://www.sojson.com/encrypt_rc4.html

playfair密码#

普莱费尔密码(英语:Playfair cipher)是一种对称式密码,是首种双字母取代的加密法

1
2
3
4
5
6
7
加密方法:选取一个英文字作密钥。除去重复出现的字母。将密钥的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依a-z的顺序加入。(将Q去除,或将I和J视作同一字。)
将要加密的讯息分成两个一组。若组内的字母相同,将X(或Q)插入两字母之间,重新分组(例如 HELLO 将分成 HE LX LO)。若剩下一个字,也加入X字。
在每组中,找出两个字母在矩阵中的地方。
若两个字母不在同一直行或同一横列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。
若两个字母在同一横行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
若两个字母在同一直列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
新找到的两个字母就是原本的两个字母加密的结果。

解密网站:https://www.metools.info/code/playfair_186.html

serpent加密#

wiki

在线解密:http://tool.chacuo.net/cryptserpent

twofish加密#

wiki

在线解密:https://try8.cn/tool/cipher/twofish

博福特密码(Beaufort Cipher)#

wiki

示例

例如,明文的第一个字母为D,则先在表格中找到第D列。由于密钥的第一个字母为F,于是D列从上往下找到F。这一F对应的行号为C,因而C便是密文的第一个字母。以此类推可以得到密文。以下便是一个密钥为FORTIFICATION时的例子:

1
2
3
明文:DEFENDTHEEASTWALLOFTHECASTLE
密钥:FORTIFICATIONFORTIFICATIONFO
密文:CKMPVCPVWPIWUJOGIUAPVWRIWUUK

在线解密:http://www.hiencode.com/beaufort.html

维吉尼亚密码#

wiki

一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了DB转换为了E……而维吉尼亚密码则是由一些偏移量不同的凯撒密码组成。

为了生成密码,需要使用表格法。这一表格包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。

例如,假设明文为:

1
ATTACKATDAWN

选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:

1
LEMONLEMONLE

对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:

1
2
3
明文:ATTACKATDAWN
密钥:LEMONLEMONLE
密文:LXFOPVEFRNHR

解密的过程则与加密相反。例如:根据密钥第一个字母L所对应的L行字母表,发现密文第一个字母L位于A列,因而明文第一个字母为A。密钥第二个字母E对应E行字母表,而密文第二个字母X位于此行T列,因而明文第二个字母为T。以此类推便可得到明文

在线解密:http://www.hiencode.com/vigenere.html

滚动密钥密码#

同维吉尼亚密码

在线解密:http://www.hiencode.com/runkey.html

同音替换密码#

大多为自创密码表,难以破解,很少见的啦

培根密码#

wiki

摩斯密码#

wiki

img

在线解密:https://www.bejson.com/enc/morse/

栅栏密码#

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。

在线解密:https://www.metools.info/code/fence155.html

栅栏密码变种W型#

wiki

在线解密:https://www.metools.info/code/fence154.html

词频分析#

在线解密:http://www.aihanyu.org/cncorpus/CpsTongji.aspx

https://quipqiup.com/

键盘密码·QWE替换#

键盘密码·QWE包围#

解密方式:每组密文所围住的按键上的字符
例: yujnbg, 观察键盘发现这六个字母围住了h,故明文为h。

键盘密码·九一#

此类键盘密码的特征是有两种形式,重复的数字、重复的英文。

ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu

·发现密文全在键盘字母第一行,若再上一行,则会得到字母与数字的映射关系,例如:q对应1,w对映2。

·此时会发现数字全都是小于10的,对应九宫格拼音,又重复次数在四次以内,则重复次数是一宫中的行坐标。

例:ooo -> 999 -> y

键盘密码·九键#

两个一组对照:例如21对应A,52对应K,94对应Z

曲路密码#

猪圈密码#

wiki

猪圈密码变种#

棋盘密码Polybius密码#

明文:HELLO 密文:23 15 31 31 34

棋盘密码变种(ADFGX 密码)#

1
2
·使用这种密码表的加密也叫作 ADFGX 密码(密文中只有 A D F G X)
·明文:HELLO 密文:DD XF AG AG DF

ADFGVX密码#

wiki

在线解密:http://www.atoolbox.net/Tool.php?Id=917

棋盘密码变种 (关键字密码Nihilist)#

关键字就是一种秘钥,由字母组成,由加密双方约定而成。密码表有25个位置,依次不重复的填入秘钥,在不重复的填入a~z.

双密码#

两个密钥进行加密

1
2
3
4
5
6
   1 2 3 4 5
1| p h q g m
2| e a y l n
3| o f d x k
4| r c v s z
5| w b u t i/j

明文:THE QUICK BROWN FOX

经过密阵转换:

行:512 15543 54352 333

列:421 33525 21115 214

分组:

1
2
51215 54354 35233 3
42133 52521 11521 4

合并:

1
5121542133 5435452521 3523311521 34

在经过密阵转换后密文:WETED TKZNE KYOME X

在线解密:http://www.hiencode.com/bifid.html

三分密码#

wiki

1
三分密码与双密码非常相似,差别之处就是用除了3×3×3的密阵代替5×5密阵。

示例密阵:

1
2
3
4
5
6
7
8
密阵顺序 = EPSDUCVWYM.ZLKXNBTFGORIJHAQ
密阵顺序 = EPSDUCVWYM.ZLKXNBTFGORIJHAQ

方阵 1 方阵 2 方阵 3
1 2 3 1 2 3 1 2 3
1 E P S 1 M . Z 1 F G O
2 D U C 2 L K X 2 R I J
3 V W Y 3 N B T 3 H A Q

明文:THE QUICK BROWN FOX. 经过密阵转换:

1
2
3
4
5
T H E Q U I C K B R O W N F O X .
2 3 1 3 1 3 1 2 2 3 3 1 2 3 3 2 2
3 3 1 3 2 2 2 2 3 2 1 3 3 1 1 2 1
3 1 1 3 2 2 3 2 2 1 3 2 1 1 3 3 2
T(233)表示T在第一个方阵第三行第三列的

位置 分组(分组密钥以5为例):

1
2
3
4
THEQU ICKBR OWNFO X.
23131 31223 31233 22
33132 22232 13311 21
31132 23221 32113 32

合并:

1
23131 33132 31132 31223 22232 23221 31233 13311 32113 22 21 32

在经过密阵转换后密文:

1
2
231313313231132312232223223221312331331132113222132
N O O N W G B X X L G H H W S K W

四方密码#

wiki

首先选择两个英文字作密匙,例如example和keyword。对于每一个密匙,将重复出现的字母去除,即example要转成exampl,然后将每个字母顺序放入矩阵,再将余下的字母顺序放入矩阵,便得出加密矩阵。

将这两个加密矩阵放在右上角和左下角,余下的两个角放a到z顺序的矩阵:

1
2
3
4
5
6
7
8
9
10
11
a b c d e   E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z

K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z

加密的步骤:

  • 两个字母一组地分开讯息:(例如hello world变成he ll ow or ld)
  • 找出第一个字母在左上角矩阵的位置
1
2
3
4
5
6
7
8
9
10
a b c d e   E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z

同样道理,找第二个字母在右下角矩阵的位置:

1
2
3
4
5
6
7
8
9
10
a b c d e   E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
  • 找右上角矩阵中,和第一个字母同row(横),第二个字母同column(直)的字母:
1
2
3
4
5
6
7
8
9
10
a b c d e   E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
  • 找左下角矩阵中,和第一个字母同column(直) ,第二个字母同row(横)的字母:
1
2
3
4
5
6
7
8
9
10
a b c d e   E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z

这两个字母就是加密过的讯息。

help me obiwan kenobi的加密结果:

1
2
he lp me ob iw an ke no bi
FY GM KY HO BX MF KK KI MD

在线解密:http://www.metools.info/code/four-square244.html

二方密码#

wiki

二方密码比四方密码用更少的矩阵。

得出加密矩阵的方法和四方密码一样。

例如用“example”和“keyword”作密匙,加密“lp”。首先找出第一个字母(L)在上方矩阵的位置,再找出第二个字母(P)在下方矩阵的位置:

1
2
3
4
5
6
7
8
9
10
11
E X A M P
L B C D F
G H I J K
N O R S T
U V W Y Z

K E Y W O
R D A B C
F G H I J
L M N P S
T U V X Z

在上方矩阵找第一个字母同行,第二个字母同列的字母;在下方矩阵找第一个字母同列,第二个字母同行的字母,那两个字母就是加密的结果:

1
2
3
4
5
6
7
8
9
10
11
E X A M P
L B C D F
G H I J K
N O R S T
U V W Y Z

K E Y W O
R D A B C
F G H I J
L M N P S
T U V X Z

help me的加密结果:

1
2
he lp me
HE DL XW

这种加密法的弱点是若两个字同列,便采用原来的字母,例如he便加密作HE。约有二成的内容都因此而暴露。

Porta密码#

Porta密码(Porta Cipher)是一个由意大利那不勒斯的医生Giovanni Battista della Porta发明的多表代换密码 Porta密码具有加密解密过程的是相同的特点

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密钥(循环使用,密钥越长相对破解难度越大):CULTURE 加密过程:明文字母’T’列与密钥字母’C’行交点就是密文字母’F’,以此类推。 密文:FRW HKQRY YMFMF UAA OLWHD ALWI JPT ZXHC NGV

在线解密:http://www.hiencode.com/porta.html

波利比奥斯方阵#

波利比奥斯方阵密码(Polybius Square Cipher或称波利比奥斯棋盘)是棋盘密码的一种,是利用波利比奥斯方阵进行加密的密码方式,简单的来说就是把字母排列好,用坐标(行列)的形式表现出来。字母是密文,明文便是字母的坐标。

Bazeries密码#

Bazeries密码(Bazeries Cipher)是换位密码和替换密码的组合,使用两个波利比奥斯方阵,一个明文字母方阵,使用一个随机的数字(一般小于1000000)的生成一个密钥矩阵同时作为第一轮明文划分分组,比如2333这个数字翻译为英文便是TWO THOUSAND THREE HUNDRED THIRTY THREE,从第一个字母T开始选取不重复的字母,之后再从字母表中按序选取没有出现的字母组成密钥矩阵。

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 随机数字:2333

明文矩阵:

1
2
3
4
5
A  F  L  Q  V
B G M R W
C H N S X
D I/J O T Y
E K P U Z

示例密钥矩阵:

1
2
3
4
5
T  W  O  H  U
S A N D R
E I/J Y B C
F G K L M
P Q V X Z

明文分组:

1
2
3
4
2  3   3   3    2  3   3   3  2   3   3   3  3
TH EQU ICK BRO WN FOX JUM PSO VE RTH ELA ZYD OG
分组明文反序:
HT UQE KCI ORB WN XOF MUJ OSP EV EHT ALE DYZ GO

使用密钥矩阵替换:

1
2
IL XHP QEG KDS YR CKW NXG KBV PU ILD TOP FMZ AK
(比如’H’在明文矩阵对应到密钥矩阵的位置就是’I’)

Digrafid密码#

Digrafid密码(Digrafid Cipher)使用两个密钥生成分别生成类似波利比奥斯方阵的3×9方格的密表。

格朗普雷密码#

简介:格朗普雷密码是替换密码的一种,一般使用8个8字母的单词横向填充8x8方阵,且第一列为一个单词,并且在方阵中26个字母都必须出现一次以上。

举例:

说明:明文中的字母在密阵位置可能不止一个,所以加密结果可能有多种,但是不影响解密。密阵还有6×6、7×7、9×9、10×10、几种。显然密阵越大每个字母被替换的情况就可能越多,那么加密效果就更好。

比尔密码#

比尔密码(英文:Beale ciphers)是在1885年出版的一本小册子中提到的三份密码;根据被破解的第二份密码,第一份密码说明了财宝的位置,第二份密码则说明了财宝的内容,第三份密码则列出了财宝所有者的姓名。

当铺密码#

原理:根据当前汉字有多少笔画出头,对应的明文就是数字几。

在线解密:https://dsb.ink/ctf/dangpu.html

JS混淆类#

颜文字符号(aaencode)#

1
特征:一堆颜文字构成的js代码

在线解密:http://www.atoolbox.net/Tool.php?Id=703

JJEncode编码#

1
2
3
特征:大量 $、_ 符号,大量重复的自定义变量

[]()!+,\"$.:;_{}~=

在线解密:https://www.toolkk.com/tools/jjencode-encode-decode

jother编码#

1
特征:只用! + ( ) [ ] { }这八个字符就能完成对任意字符串的编码。也可在F12中解密执行

在线解密:https://vulsee.com/tools/jother/index.htm

JSFuck编码#

1
2
3
特征:[]()!+组成

(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[+[]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+

在线解密:http://www.hiencode.com/jsfuck.html

Brainfuck#

1
++++++++++[>+++++++>++++++++++>+++>+<<<<-]++.>+.+++++++…+++.>++.<<+++++++++++++++…+++.------.--------.>+.>

在线解密:https://ctf.bugku.com/tool/brainfuck

Ook加密#

1
Ook! Ook!

在线解密:https://ctf.bugku.com/tool/brainfuck

.!?加密#

1
特征:.!?密码中只含有.!?三个不同的语法元素,使用Ook解密即可。

在线解密:https://www.splitbrain.org/services/ook

阴阳怪气#

1
就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 就 这 ¿ 不 会 吧 ? 就 这 ¿ 就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 不 会 吧 ? 就 这 ¿ 就 这 ¿ 就 这 ¿ 就 这 ¿ 就 这 ¿ 不 会 吧 ? 不 会 吧 ? 就 这 ¿ 不 会 吧 ? 就 这 ¿ 不 会 吧 ?

在线解密:https://mmdjiji.gitee.io/yygq.js/

BubbleBabble#

1
2
编码格式每5个字符中间以-来分隔
xinik-samak-loxox

在线解密:http://www.hiencode.com/bubble.html

敲击码#

在线解密:http://www.hiencode.com/tapcode.html

Type7混淆加密#

简介:Type 7 是一种 Cisco 设备密码加密算法,用于将明文密码加密为不可逆的形式。这种加密算法采用了 XOR 和 MD5 哈希的混合方式,使用一个给定的密钥和额外的固定字符串来生成加密后的密码,因此也被称为 Type 7 混淆加密。

原理:从一个有26个ASCII字符表中,产生一个种子值(Seed Value)(0-52之间)随机抽取一个用来和明文密码的第一个字符异或,产生的结果用16进制表示,放在加密后字符串的第2、3位,然后种子值+1,再去抽取一个用来和明文密码第二个字符异或,16进制结果放在随后的位置位……。

在线解密:http://www.atoolbox.net/Tool.php?Id=992&ac=csdn

博多密码#

博多密码,也叫巴拿马密码,是一种古典密码学中的替换密码。它采用了多个字母表,并通过一个基准词来确定加密和解密使用的具体字母表。

原理:将基准词中出现的所有字母按照顺序排列并去除重复字母,得到字母表A;然后将剩余的字母按照字母表顺序排列并去除重复字母,得到字母表B,字母表A和B都包含26个字母;接下来,将明文中的每个字母在字母表A中的位置作为行数,将该字母在字母表B中的位置作为列数,找到对应的密文字母。同理,将密文中的每个字母在字母表B中的位置作为行数,在字母表A中的位置作为列数,找到对应的明文字母。

博多密码的优点是具有较好的安全性,但缺点也很明显,即容易受到频率分析攻击等各种攻击手段的攻击。因此,它已经被更安全的加密算法所取代。

在线解密:https://www.boxentriq.com/code-breaking/baudot-code

人造语言#

人造语言wiki:https://yuyan.fandom.com/zh/wiki/Main_Page

八卦与伏羲六十四卦#

伏羲六十四卦

圣堂武士密码#

曲折密码/夏多密码#

狄德拉密码#

埃及文字#

外星人密码#

多斯拉克语#

模拟语#

海利亚语#

樊凡语#

跳舞的小人#

神奇宝贝密码#

音符加密#

音乐密码#

海军手旗旗语#

六十甲子#

国际船用信号旗密码#

Covenant字体#

费兹象形文字#

wingdings字体#

wingding编码是一种用于打印的字体,不具有可读性,类似的系列编码还有web dings、wingding 2、wingding3编码

根据编码的特征,doc文档设置字体为宋体、黑体即可看到原文内容

LaTeX#

LaTex常见符号对照表
查阅表:
https://detexify.kirelabs.org/symbols.html

LaTex在线编辑器

提瓦特文#

《来自星尘》异星文字#

古精灵语#

盲文#

表中第一行只用第1、2、4、5四个点,第二行由第一行加第3点而得,第三行除“w”外其余均由第一行加第3、6点而得,“w”则由第一行加第6点而得。第一行十个字母的符形也有一定规律,前三个字母(abc)和元音字母(aei)只有一个或两个凸点,第4、6、8、10个字母(dfhj)有三个凸点,剩下的g有四个凸点。

特性是1必须有点,如果没有就是2和4必须有点,这样可以让盲人阅读时有一个原点来判断相对位置。

不同点语言的盲文对标点、带音符的拉丁字母以及字母组合有不同的规定。例如盲符⠡,在英语盲文中表示字母组合ch,德语盲文中表示字母组合au,在法语盲文中表示带长音符的字母â。

布莱叶式用前十个字母表示1到0,安托万式的1-9是在布拉耶式基础上加6点,安托万式的0是布拉耶式的数字符号。

阿拉伯数字表示法有布莱叶和安托万两种。布莱叶式比较常用,英语盲文、汉语盲文等众多盲文都使用这种形式;安托万式主要用于法语盲文。

人类语、旧人类语[游戏人生]#

世界观:人类语和日语一样,可是写的字不同,文字对应日语五十音拼音字母,数字使用7进制(骰子)。

旧人类语:

安特·伊苏拉语 [打工吧!魔王大人]#

塔语#

《为[美好的世界]献上祝福!》#

魔女文字《魔法少女小圆》#

奈落文字《来自深渊》#

《少女终末旅行》#

诺德林语《幻镜诺德琳》#

凹凸文《凹凸世界》#

克林贡语《星际迷航》#

标准银河字母#

元素周期表#

本文作者:MiguoQAQ
本文链接:https://miguoqaq.github.io/2024/04/07/CTF%20%E5%B8%B8%E8%A7%81%E5%AF%86%E7%A0%81%E7%BC%96%E7%A0%81%E5%8F%8A%E5%85%B6%E7%89%B9%E5%BE%81/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
本站总访问量
本站访客数人次