1.埃及文字
·加/解密方式:对表
2.宝可梦图腾
·加/解密方式:对表
3.福尔摩斯·跳舞的小人
·加/解密方式:对表
4.精灵语
·加/解密方式:对表
5.盲文
·加/解密方式:对表
6.曲折密码/夏多密码
· 加/解密方式:对表
7.圣堂武士密码
· 加/解密方式:对表
8.外星人密码
· 加/解密方式:对表
9.音乐密码
· 加/解密方式:对表
10.银河标准字母
· 加/解密方式:对表
11.猪圈密码
· 加/解密方式:对表
12.猪圈密码变种
· 加/解密方式:对表
13.天干地支表
14.莫斯密码
· 加/解密方式:对表 | 网站解析
15.培根密码
· 加/解密方式:对表
· 加/解密方式:Python3代码实现
1 | __autor__ = '0HB' |
16.JSfuck密码
·简介
·JSFuck 可以让你只用 6 个字符 !+ 来编写 JavaScript 程序。
·例如你想用 JSFuck 来实现 alert(1) 代码如下:
1 | [][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]][([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+([][[]]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[+!+[]]]]+([][[]]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]((![]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+[+!+[]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+![]+!+[]+!+[]+!+[]]]])() |
·加/解密方式:网页解析
17.BrainFuck密码
·简介
这种语言,是一种按照“Turing complete(图灵完备)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言,BrainFuck 语言只有 ><+-.,[] 八种符号,所有的操作都由这八种符号的组合来完成。
·加/解密方式:网页解析
20.Ook!密码
·简介
所有明文转换成Ook.?!
·加/解密方式:网页解析
21.博多密码
·简介
·博多电码是法国工程师博多于1874年推出的一种电报码。它在20世纪中期取代了莫尔斯电码被广泛应用。
·博多码,是一种5位代表一个字节的编码。在那个年代,5位的系统已经非常复杂,位数更多不切合实际,但稍加分析便可知道,5位是不可能代表26个英文字母+数字+各种符号的,而博多码并不是一个像电脑所使用的,一个8位特定的二进制数字专门地表示一个字符的编码系统,博多使用了同一组编码分别表示字母集和数字标点符号集,通过两个字符实现字符集之间的切换。因此,当报文中同时包含了英文字母和数字和符号的时候,必须加入切换字符来表示在不同的集之间的切换。博多式电报机是这样的一个样子:发报收报端各一台看上去是钢琴一般的只有5个按键的机器,按键从左到右按字母顺序排列,通过电路两两相连,两边按下键盘时,对方的纸带上会打印出相对应按键的黑点,当需要打符号的时候,只需要按照编码表上表示切换到符号集(Figures)所代表编码按下对应的按键,此后输出的都会被收报员人工判读为符号或者数字,当需要恢复到输入字母时,按下编码表上表示字母集(Letters)的按键,此后的内容都会被判读为字母。
22.键盘密码·QWE替换
·简介
QWE格式密码就是QWERTYUIOP ASDFGHJKL ZXCVBNM 依次表示字母ABCDEFGHIJKLMNOQRSTUVWXYZ。
·加/解密方式:对表
23.键盘密码·QWE包围
·简介
解密方式:每组密文所围住的按键上的字符
例: yujnbg, 观察键盘发现这六个字母围住了h,故明文为h。
·加/解密方式:观察键盘
24.键盘密码·九一
·名字自己胡诌的。此类键盘密码的特征是有两种形式,重复的数字、重复的英文。
·一是指键盘第一行的意思,九是指九宫格。
·[NCTF2019]Keyboard
ooo yyy ii w uuu ee uuuu yyy uuuu y w uuu i i rr w i i rr rrr uuuu rrr uuuu t ii uuuu i w u rrr ee www ee yyy eee www w tt ee
·发现密文全在键盘字母第一行,若再上一行,则会得到字母与数字的映射关系,例如:q对应1,w对映2。
·此时会发现数字全都是小于10的,对应九宫格拼音,又重复次数在四次以内,则重复次数是一宫中的行坐标。
例:ooo -> 999 -> y
·[MRCTF2020]keyboard
得到的flag用
MRCTF{xxxxxx}形式包上
都为小写字母
6
666
22
444
555
33
7
44
666
66
3
·相比于重复字母,则是少了映射的一步,直接在九宫格定位。
·例:6 -> M
·加/解密方式:Python3代码实现
1 | cipher = input('请输入键盘密码(数字或英文):') |
25.棋盘密码
·简介
Polybius 密码又称为棋盘密码,一般是将给定的明文加密为两两组合的数字
·加/解秘方式:对表
·基础版
·明文:HELLO 密文:23 15 31 31 34
·变异版
·使用这种密码表的加密也叫作 ADFGX 密码(密文中只有 A D F G X)
·明文:HELLO 密文:DD XF AG AG DF
26.维吉尼亚密码
·简介
维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。另外,维吉尼亚密码必须有一个密钥,这个密钥由字母组成,最少一个,最多可与明文字母数量相等。
·加/解密方式:网页解析
维吉尼亚密码加密方法示例如下:
明文:I’ve got it.
密钥:ok密文:W’fs qcd wd.
首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到相同。本例中,明文长度为8个字母(非字母均被忽略),密钥会被程序补全为“okokokok”。
现在根据如下维吉尼亚密码表格进行加密:
明文第一个字母是“I”,密钥第一个字母是“o”,在表格中找到“I”列与“o”行相交点,字母“W”就是密文第一个字母;同理,“v”列与“k”行交点字母是“F”;“e”列与“o”行交点字母是“S”……
维吉尼亚密码只对字母进行加密,不区分大小写,若文本中出现非字母字符会原样保留。
如果输入多行文本,每行是单独加密的。
27.栅栏密码
·简介
·分为传统型与变异W型
·接下来,介绍传统型栅栏密码
·所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
传统栅栏
·Python3实现
1 | def enFence(string, space): # 解密 |
W型栅栏
·简介
W型栅栏密码加密的方法中,明文由上至下顺序写上,当到达最低部时,再回头向上,一直重复直至整篇明文写完为止。
·加解密方式:网页解析
此例子中,其包含了三栏及一段明文:’WEAREDISCOVEREDFLEEATONCE’。如下:
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .按行读取后的密文:
WECRLTEERDSOEEFEAOCAIVDEN
W型的加密密钥就不只能是字符串长度的因子,小于其长度的任何一个数都可能是其key值,所以第一步也是确定密钥。
28.凯撒密码
·简介
凯撒密码最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。此为一种位移加密手段,只对26个(大小写)字母进行位移加密,规则相当简单,容易被破解。下面是明文字母表移回3位的对比:
明文字母表 X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
密文字母表 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
然后A变成D,B变成E,Z变成C。
字母最多可移动25位(按字母表)。通常为向后移动,如果您想向前移动1位,则相当于向后移动25位,位移选择为25位。
·加/解密方式:Python3实现
1 | #!/usr/bin/env python3 |
29.拼音编码
·简介
即将生僻字转换成拼音,然后读出来的文字就是明文
·加/解密方式:网页解析
30.URL编码
·简介
密文格式:%66%6C%61%67%7B%61%6E%64%20%31%3D%31%7D
·加/解密方式:网页解析
31.quoted-printable编码
加/解密方式:网页解析
32.Uuencode编码
·加/解密方式:网页解析
33.Rabbit编码
·加/解密方式:网页解析
34.ROT编码
·简介
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。
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码。
·加/解密实现:网页解析
35.社会主义核心价值观编码
·加/解密方式:网页解析
39.希尔密码
·简介
希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。
每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26。