ctf常见编码
编码
-
进制
十进制:20
八进制:024
十六进制:0x14
key和flag对应的ASCII key 107 101 121 KEY 75 69 89 flag 102 108 97 103 FLAG 70 76 65 71
-
Unicode 编码
例如:原文本:You had me at hello
编码后\u0059\u006f\u0075\u0020\u0068\u0061\u0064\u0020\u006d\u0065\u0020\u0061\u0074\u0020\u0068\u0065\u006c\u006c\u006f
-
URL编码
明文:睡觉
编码后:%e7%9d%a1%e8%a7%89
-
Escape/Unescape
明文:睡觉
编码后:%u7761%u89c9
-
Base64
-
Base32
范围:字母A-Z和数字2-7
-
Base16
base16中只有数字0-9以及大写字母ABCDEF
-
Base91
-
XXencode编码
明文:Be slow to promise and quick to perform.
编码后:cEaIUQqljRm-oPm-kQaxhOLBZ643iN0-lRKZXOm-oPm-kNL7aPr7h9U++
-
UUencode编码
明文:Be slow to promise and quick to perform.
编码后:H0F4@小于VQO=R!T;R!P小于F]M:7-E(&%N9"!Q=6EC:R!T;R!P97)F;W)M+@``
-
aaencode编码
明文:alert(“Hello, JavaScript”)
编码后:
-
ROT5/13/18/47编码
ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。
ROT5 是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下面分别说说它们的编码方式:
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
ROT18:这是一个异类,本来没有,它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18(对数字5对,字母rot13)。
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126
-
jother编码
8个字符 ! + ( ) [ ] { } 也是在console中运行就好,
这encode出来时字符串,不是js程序。
密码
-
栅栏密码
示例: 明文:栅栏密码加密规则示例 每组字数:5 按照字数先把明文分成: 栅栏密码加 密规则示例 先取每组第一个字:栅密 再取每组第二个字:栏规 密则 码示 加 最后得到“栅密栏规密则码示加例”。 解密则反推: 密文被分成2个字一组: 栅密 栏规 密则 码示 加例 先取每组第一个字:栅栏密码加 再取每组第二个字:密规则示例 最后得到“栅栏密码加密规则示例” 例子: FOKLPLA CGGODII SSSDOOP => FOK LPL ACG GOD IIS SSD OOP => FLAGISOOPCOISOKLGDSDP => FLAG IS OOPCOISOKLGDSDP
-
morse莫尔斯电码
morse与ascii对照表:
-
RSA
参数: p、q 个不相等的质数 n p和q的乘积 φ(n) (p-1)(q-1) e 1< e < φ(n),且e与φ(n) 互质 d ed被φ(n)除的余数为1 n,e 公钥 n, d 私钥 m 明文 c 密文
-
Ploybius 棋盘密码 波利比奥斯方阵
Polybius Square Cipher波利比奥斯方阵密码
密文位数是明文2倍
下面横行为i 竖行为j eg.L:(3,1)
-
普莱费尔密码 Playfair
英文:Playfair cipher 或 Playfair square)
是一种使用一个关键词方格来加密字符对的加密法
例题:Cipher
步骤:
-
编制密码表 、密钥编成方阵
密钥方阵并不确定,最常见就这两种,也有playfair zxwv。。。这种反着的
-
编写密文
最后编写密文。对明文加密规则如下:
1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应dc
2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应ku或uk。
如,依照上表,明文where there is life,there is hope.
可先整理为:WH ER ET HE RE IS LI FE TH ER EI SH OP EX
然后密文为:KU YO XD OL OY PL FK DL FU YO LG LN NG LY
将密文变成大写,然后几个字母一组排列。
如5个一组就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY
-
解密
Playfair解密算法首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩余位置中,根据替换矩阵由密文得到明文。
对密文解密规则如下:
1 若c1 c2在同一行,对应明文p1 p2分别是紧靠c1 c2 左端的字母。其中最后一列被看做是第一列的左方。
2 若c1 c2在同一列,对应明文p1 p2分别是紧靠c1 c2 上方的字母。其中最后一行被看做是第一行的上方。
3 若c1 c2不在同一行,不在同一列,则p1 p2是由c1 c2确定的矩形的其他两角的字母。
其实就是反其道而行之。
-
-
维吉尼亚密码
例如,假设明文为:
ATTACKATDAWN
选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:
LEMONLEMONLE
对于明文的第一个字母A,对应密钥的第一个字母L,于是使用表格中L行字母表进行加密,得到密文第一个字母L。类似地,明文第二个字母为T,在表格中使用对应的E行进行加密,得到密文第二个字母X。以此类推,可以得到:
明文:ATTACKATDAWN
密钥:LEMONLEMONLE
密文:LXFOPVEFRNHR
用来加密解密的维吉尼亚表格:
-
曼彻斯特编码
IEEE形式的,每四位取1 3 位就可以得到原本的Data
得到data后对其二进制进行处理
-
培根密码
培根密码加密方式
第一种方式:
A aaaaa B aaaab C aaaba D aaabb E aabaa F aabab G aabba H aabbb I abaaa J abaab K ababa L ababb M abbaa N abbab O abbba P abbbb Q baaaa R baaab S baaba T baabb U babaa V babab W babba X babbb Y bbaaa Z bbaab
第二种方式
a AAAAA g AABBA n ABBAA t BAABA b AAAAB h AABBB o ABBAB u-v BAABB c AAABA i-j ABAAA p ABBBA w BABAA d AAABB k ABAAB q ABBBB x BABAB e AABAA l ABABA r BAAAA y BABBA f AABAB m ABABB s BAAAB z BABBB
-
jsfuck
JSFuck 可以让你只用 6 个字符 !+来编写 JavaScript 程序。
jsfuck一种表示js的语言,直接在console中运行就好
captfencoder可离线跑
-
元音密码
元音密码表:
下面就可以对信息进行加密了 比如明文是:
When in Rome,do as the Romans do.(入乡随俗)
根据密码表加密为(注意,数字之间加点): 52.23.2.35.3.35.43.4.34.2.13.4.1.44.45.2.43.4.34.1.35.44.13.4
-
六十甲子
-
当铺密码
当铺密码就是一种将中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几。例如:
口 0 田 0 由 1 中 2 人 3 工 4
大 5 王 6 夫 7 井 8 羊 9
-
猪圈密码
传统:
变种1:
变种2:
-
圣堂武士密码
-
银河标准字母
-
跳舞的小人
网站解密
-
新佛曰
解密网址:
http://hi.pcmoe.net/buddha.html
諸壽隸僧壽降吽壽諸壽陀壽摩隸僧缽薩願心壽咤壽囉寂壽闍諸壽哆壽慧壽聞壽色吽愍壽所壽蜜如
gemlovecom
-
OoK!加密
也有脚本可解密
样子:
解密网站:
-
brainfuck加密
八种符号(> < + - . , [ ]),也有脚本可解密
样子:
解密网站:
-
Quoted-printable
Quoted-printable将任何8-bit字节值可编码为3个字符:一个等号"="后跟随两个十六进制数字(0–9或A–F)表示该字节的数值。
例如,ASCII码换页符(十进制值为12)可以表示为"=0C", 等号"="(十进制值为61)必须表示为"=3D",gb2312下“中”表示为=D6=D0。除了可打印ASCII字符与换行符以外,所有字符必须表示为这种格式。
notepad++和captfencode偶尔能解,但遇到中文=D6=D0就不会了
解码网站:
-
Rabbit
rabbit加密有base64显示形式和hex显示形式,然后密文不唯一,
例如对一个Cute_Rabbit加密有很多种密文:
U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI
U2FsdGVkX18RWTkternW9o4I+lRGrqHAjGN9
U2FsdGVkX1/pfkxaegi0iXaw89BiLrZIXCxs
解密网站:
加密效验算法
-
MD5
需要网站碰撞 cmd5网站
由a-z A-Z 0-9组成
有16位的也有32位的
-
sha1
sha1(asdfafasdf)= 1366ed1868270a692348291cc90f4a40c126bf4d