目录
https://blog.csdn.net/zz_Caleb/article/details/87016017
URL
在url编码和解码的时候,只需要关注“%”的内容,每当遇到一个百分号的时候,连带着百分号的三个字符对应着明文的一个字符。
工具:http://ctf.ssleye.com/url.html
摩斯密码
形式应该都知道
工具:http://ctf.ssleye.com/morse.html
盲文密码
甲子年加密
jsfuck
这是一种比较有意思的编码方式,只用6个字符就可以书写任意的JAVASCRIPT代码。只需要“()+[]!"这六个字符组成。
拼音九键加密
利用字母在九键上的位置进行加密,特点:数字为偶数个,且偶数位的数小于5(九键上一个键上的字母最多是四个)
例:335321414374744361715332
两个数为一组分开:33 53 21 41 43 74 74 43 61 71 53 32
对应九键进行查找:3键的第三个字母、5键的第3个字母
uuencode
这是一种将二进制文件转化成可见字符文本的文件的一种编码方式,转换之后的文件可以通过纯文本的email进行传输,因为转换之后仅包含可见字符。uuencode的运算法则是将连续的3个字节扩展成4个字节,这一点与base64很像。该编码效率高于hex
编码之后的代码杂乱无章,什么可见字符都有可能出现,其取值为 32(空白)到95(底线),也就是没有小写字母。
当铺密码
王夫 67 井工 84 夫口 70 由中人 123 井中 82 夫夫 77 由中大 125
base家族
base16就是hex
编码方式 | 字符集 |
base64 | a-z,A-Z,0-9,+,/共64个以及补位的”=“ |
base32 | A-Z,2-7,共32个以及部位的”=“ |
base16 | 0-9,A-F,共16个以及部位的”=“ |
古典密码
简单移位密码
密文k=“3124”
明文m=“flag{easy_easy_crypto}”
移位密码首先以k的长度(也就是len(k)=4)切分m,具体如下:
flag {eas y_ea sy_c rypt o}
总共分成了6个部分,然后按照密钥3124的顺序对每一部分都进行密钥变化。如下是变化规则
明文字符位置 | 1 | 2 | 3 | 4 |
密文字符位置 | 3 | 1 | 2 | 4 |
变化之后,如下:
flag {eas y_ea sy_c rypt o}
lafg ea{s _eya y_sc yprt }o
所以密文为:lafgea{s _eyay_scyprt}o
曲路密码
云影密码
云影密码仅包含01248五个数字,其中0用于分割,其余数字用于做加和操作之后转换为明文。
栅栏密码
这是一种规则比较特殊的移位密码,其密钥只有一个数字k,表示栅栏的长度。将要加密的明文分成k个一组,然后取每组的第一个字符依次连接,拼接而成的字符串就是密文。W型栅栏密码 。样例如下:
m="flag{zhalan_mima_hahaha}"
k=4
首先将明文m按照长度每4个分为一组:
flag {zha lan_ mima _hah aha}
共分成6组,然后依次取出每组的第一个字符,如下:
f{lm_a
依次取出第2,3,4个,放置在后面,得到:
f{lm_alzaihhahnmaaga_ah}
替换密码
单表替代密码
凯撒密码
通过字母移动一定的位数来实现加密和解密。针对单表替代密码的攻击方法本来是词频分析,但是凯撒密码的密钥的取值空间太小了,直接爆破密钥k。
ROT13
在凯撒密码中的一种特例,当k=13,并且只作用于大小写字母。通常作用于MD5,flag等字符串上,而我们都知道,MD5中的字符只有“ABCDEF”,其对应的ROT13为“NOPQRS”,flag对应的rot13为"SYNT"。
埃特巴么密码
这个的替换表不是通过移位获得的,而是通过对称获得的。
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
经典单表替代密码
上述几种密码都是单表替代密码的特例,经典的单表替代密码就是用一个替代表对每一个位置的字符进行查表替换。
培根密码
一般使用两种不同的字体表示密文,密文的内容不是关键所在,关键是字体。使用AB代表两种字体,5个一组,表示密文。
工具:http://ctf.ssleye.com/baconian.html
银河字母
图形替换密码(猪圈密码)
https://tieba.baidu.com/p/3938367567
https://blog.csdn.net/zmx2473162621/article/details/103949134/
多表替代密码
棋盘类密码
Playfair、Polybius、Nihilist均属于棋盘类密码。此类密码的密钥为一个5*5的棋盘。棋盘的生成符合如下条件:顺序随意、不得出现重复字母;i和j可视为同一个字(也有将q去除的,以保证总数为25个)。
Playfair:根据明文的位置去寻找新的字母。首先将明文字母两两一组进行切分,并按照如下规则进行加密。
1)若将两个字母不同行也不同列,则需要在矩阵中找出另外两个字母(第一个字母对应行优先),使这四个字母为一个长方形的四个角。
2)若两个字母同行,则取这两个字母右方的字母(若字母在最右方则取最左方的字母)
3)若两个字母同列,则取这两个字母下方的字母(若字母在最下方则取最上方的字母)
https://blog.csdn.net/zz_Caleb/article/details/86698112
Polybius:这个密码相对简单一点,只是用棋盘的坐标作为密文,可能不一定是数学,坐标也可以用字母表示。Nihilist和Polybius原理相同。
维吉尼亚密码:
标准的多表代替密码。多表替代密码的密钥不再是固定不变的,而是随着位置发生改变的。在维吉尼亚密码中,根据密钥的字母来选择。比如密钥是LOVE,那么明文会每四个一组进行循环。
工具:https://quipqiup.com/ (待定)
希尔密码
运用基本矩阵论原理的替换密码,将每个字母当作是26进制数字,A=0,B=1,C=2,依此类推。将一串字母当成n维向量,与一个n*n的矩阵相乘,再将得出的结果模26。注意,用作加密的矩阵(即密钥)在Z26n中必须是可逆的,否则就不可能译码。只有矩阵的行列式与26互质才是可逆的。
现代密码
分组密码和序列密码
RSA
k是未知的 一个一个试直到d可以算出整数。
例题: