古典密码汇总。

2023-9-15 231 9/15

1. 密码类型总结

23. 维吉尼亚

【维吉尼亚】

由于频率分析方法可以有效破解单表替换密码,法国密码学家弗吉尼亚于1586年提出了多表替换密码。

这就是维吉尼亚密码,也称为维吉纳尔密码。 维吉尼亚密码引入了“密钥”的概念,它根据密钥决定使用密码表的哪一行进行替换。

这用于对抗词频统计。

加密算法:例如密钥的字母为[d],明文对应的字母为[b]。 根据字母顺序[d]=4,[b]=2,则密文为[d]+[b]-1=4+2-1=5=[e],

因此加密结果为[e]。 解密就是做这个逆操作。

加密公式:密文=(明文+密钥)Mod 26 - 1

解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1

还可以使用查表法进行加密:例如密钥的字母是[d],明文对应的字母是[b]。 在下表的第一行中找到字母“d”(深蓝色)。

然后在左侧第一列中找到字母“b”(绿色)。 两个字母(b行和d列)的交集是字母“E”,所以对应的密文字母是[e]。

[ - - - - - - - - -图片 - - - - - - - - -]

u vwxyz

a U VWXYZ

b V WXYZA

c W XYZAB

d X YZABC

e Y ZABCD

YZ ABCDE

g A BCDEF

h B CDEFG

i C DEFGH

j D EFGHI

k

l F GHIJK

n H IJKLM

o I JKLMN

p J KLMNO

JK LMNOP

r

M NOPQR

MN OPQRS

u O PQRST

v P QRSTU

w Q RSTUV

x R STUVW

S TUVWX

z T UVWXY

如果以下明文被加密:

存在还是不存在,这就是

当选择“have”作为密钥时,加密过程为:密钥首字母为[h],明文首字母为[t],因此h行t列的字母为[a]可以发现,诸如此类,

得到对应关系如下:

关键:哈韦哈韦阿韦阿韦阿韦哈

纯文本:存在或不存在才是最重要的

密文:ao wi vr isa tj fl tcea in xoe

在线解密网站: 加密/解密-工具箱-有用的在线工具都在这里! ()

24. 培根代码

25.猪圈密码。

密码在线解密平台:

26. [按字母顺序]-数字

加密时,经常需要将A到Z这26个字母转换成数字。 最常见的方法之一是采用字母表中的数字序列。 A代表1,B代表2,C代表3……

字母 U VWXYZ

数量 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.【16进制转换密码】

例如二进制:1110 10101 1101 10 101 10 101

转换为十进制:14 21 13 2 5 18 15 14 5

对应字母:

28.【逆序】

加密时,字符通常以相反的顺序进行处理。 如果要求你按顺序背诵字母表中的每个字母,那会很容易......

但如果是……的顺序,就很难背诵了。 一个非常熟悉的单词如果以相反的顺序拼写可能会感觉很奇怪。

例如,字母“love”倒过来拼写为“evol”。

加密时实现逆序的方式有很多种,需要灵活运用。 例如:

每个单词的逆序:siht si a tset - 这是一个测试

整个句子的倒序:tset a si siht - 这是一个测试

数字逆序:02 50 91 02 - 20 05 19 20(测试)

29.【间隔】

单词之间一般使用空格。 加密时经常会删除空格,但有时用某些字母或数字替换空格也是一个很好的加密解决方案。

错误的空间布局也可能会产生很大的误导。

例如: th hi sis at est - 这是一个测试

30.【信件频率】

频率分析方法可以有效破解单字母替换密码。

关于词频问题的密码,我这里给大家提供的是英文字母出现的频率,其中数字都是百分比:

a 8.2 b 1.5 c 2.8 d 4.3

e 12.7 f 2.2 g 2.0 h 6.1

我 7.0 j 0.2 k 0.8 l 4.0

米 2.4 n 6.7 o 7.5 p 1.9

q 0.1 r 6.0 s 6.3 t 9.1

u 2.8 v 1.0 w 2.4 x 0.2

y 2.0 z 0.1

词频法实际上是计算文章中每个字母的出现频率,然后粗略地猜测清楚的码表,最后验证你的计算是否正确。

该方法需要统计字母出现的频率,所以耗时较长。 参考“跳舞的人”和“金甲虫”。

31. [密码 ( )]

又称棋盘密码,是一种利用波利比乌斯方( )进行加密的密码方法。 它起源于公元前二世纪的希腊。

相传,这是世界上最早的密码。

假设我们需要“立即”发送一条清晰的文本消息,用一个秘密的混乱字母填满波利比乌斯的方格,如下所示:

ADFGx

阿卜塔尔普

杜兹

格格

X姆鲁伊

i 和 j 被视为同一个单词,因此字母数量适合 5 × 5 网格。 选择这五个字母是因为它们翻译成摩尔斯电码时不容易混淆。

可以减少传输错误的机会。 使用这个方块,找到明文字母在这个方块中的位置,然后将该字母替换为列名以及该字母所在的列名。

该消息可以转换为经过处理的分解形式。

纯文本:攻击

密文:AF AD AD AF GF DX AF AD DF FX GF XF

A,D,F,G,X也可以替换为数字1,2,3,4,5,这样密文就变成:

13 12 12 13 43 25 13 12 23 35 43 53

-------------------------------------------------- -----------------------

32. [ADFGX/密码 (ADFGX/ )]

ADFGx

1918年,第一次世界大战即将结束时,法国军队截获了一封德国电报。 电报中的所有单词都是由 A、D、F、G、X 五个字母拼出来的。

因此它被称为 ADFGX 密码。 ADFGX密码是由德国弗里茨·内贝尔上校于1918年3月发明的。它是一种结合密码和替换密码的双重加密方案。

A、D、F、G 和 X 是方阵中的前 5 个字母。

纯文本:攻击

变形后:AF AD AD AF GF DX AF AD DF FX GF XF

接下来,使用移位密钥进行加密。 假设键是“CARGO”,将其写入新网格的第一列。 然后将上一阶段的密文逐列写入新的方格中。

货物

阿法达

DAFGF

DXAFA

德福外汇

环球外汇

最后,将密钥按字母顺序“ACGOR”排序,然后按此顺序复制每个字母下的整列消息,形成新的密文。 如下:

FAXDF ADDDG DGFFF AFAXX AFAFX

在实际应用中,Shift键通常长达两打字符,并且分解键和Shift键每天都在变化。

1918 年 6 月,添加了 V 扩展。 它被加密为 6×6 网格中总共 36 个字符。 这允许混合所有英文字母(I 和 J 不再被视为同一个单词)以及数字 0 到 9。

此添加是由于使用原始加密方法发送包含大量数字的短消息时出现问题。

33.【希尔密码(希尔)】

希尔密码是一种矩阵乘法密码,一种使用基本矩阵理论原理的替代密码。 每个字母被视为一个十六进制数字:A=0、B=1、C=2...一串字母被视为一个 n 维向量,

将其与 n×n 密钥矩阵相乘,然后对结果取模 26。 希尔密码的优点是完全隐藏了字符的频率信息,但缺点是容易被已知的明文攻击破解。

加密

例如:键矩阵

1 3

0 2

纯文本:你好

删除空格并形成一组 2 个字母。 按照字母顺序,将其改为矩阵值,如下所示。 末尾的E是填充字符:

至此

8 20 5 5

9 8 18 5

通过矩阵运算将HI转换为IS。 具体算法请参考以下说明:

|1 3| 8 e1*8+3*9=35 MOD26=9 =I

|0 2| 9 e0*8+2*9=18 MOD26=18=S

用同样的方法将“HI THERE”转换为密文“IS”。 注意明文中的两个E分别变成密文中的G和T。

解密

解密时,首先要计算密钥的逆矩阵,然后按照加密过程进行逆运算。

逆矩阵算法公式:

|AB| = 1/(AD-BC) * | D-B|

|光盘| |-CA|

例如键矩阵=

|1 7|

|0 3|

AD-BC=1*3-0*7=3 3*X=1 mod26 所以 X=9

所以

|1 7| 的逆矩阵是: 9 * |3 -7|

|0 3| |0 1|

假设密文为“”

佛奥埃斯沃

6 1 5 23

15 15 19 15

9* |3 -7| | 6| = 9*(3*6-7*15)=-783 mod26 = 23=W

|0 1| |15| = 9*(0*6+1*15)= 135 mod26 = 5 =E

因此,密文“”的明文为“”

-------------------------------------------------- -----------------------

34. [密码 ( )]

将明文中的二元组视为一个单元,并将这些单元转换为二元组。

加密字符的出现频率在一定程度上趋于均匀。

5*5变换矩阵(I或J视为同一个字符):

化学工业促进会

RABDF

荷兰皇家航空

奥克斯图大学

VXYZ

加密规则:字母配对加密

同一对中的字母由分隔符分隔(例如 x)

->ba lx lo on

Peer 取右:he->ec

删除同一列的下边缘:dm->mt

其他交叉:kt->mq od->tr

例如: -> ba lx lo on -> db sp gs ug

35.【Fenam密码】(密码:10;密钥:study)

二战期间德国军队使用的一种密码实际上是用二进制表示来代替字母的。 下表作为基础:

紫外WXYZ

因此,例如,如果我们要加密“Hello”并使用“study”作为密钥,我们可以通过以下方式对其进行加密:

你好=

研究 = 100 100

加密原理:1+1=0、0+0=0、1+0=1

所以我们得到密文:10

那么解题中的密文需要遵循以下原则和步骤:

1、除,即每七个数为一组;

2、对应,找到密文每个字母对应的数字,然后与上面的数字对应起来;

3、转换时,遵循上述加密原理,逆向使用;

4、解密得到一组新的数字,对应的字母,得到明文。

36. 密码

以 + 结尾,以 / 开头

密文:ZP94

+

钥匙:

37

英文不变,但中文变成%E7%BD%。 在浏览器中搜索时,您经常可以看到这一点。 比如你在百度上搜索中文,然后复制网站,你会发现英文字母还是英文字母,而中文字母都变成了%E7%BD。

那么百分号有时也用=代替,即=E7=BD类似。 只需要将=替换为%,然后解码即可。

str='=E7=94=A8=E4=BD=A0=E9=82=A3=E7=81=AB=E7=83=AD=E7=9A=84=E5=98=B4=E5=94=87=E8=AE=A9=E6=88=91=E5=9C=A8=E5=8D=88=E5=A4=9C=E9=87=8C=E6=97=A0=E5=B0=BD=E7=9A=84=E9=94=80=E9=AD=82'
print(str.replace('=','%'))

38 代码

这是一个特殊的班次代码。

但注意:有些问题区分大小写,有些问题不区分大小写。

如果不区分大小写:只需使用该工具即可。 如果区分大小写,则使用以下代码

DIC_LOWER = "abcdefghijklmnopqrstuvwxyz"
DIC_UPPER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
DIC_LOWER_RE = DIC_LOWER[::-1]
DIC_UPPER_RE = DIC_UPPER[::-1]
def encrypt_atbash(string):
    ciphertext = ""
    for i in string:
        if i in DIC_LOWER:
            ciphertext += DIC_LOWER_RE[DIC_LOWER.index(i)]
        elif i in DIC_UPPER:
            ciphertext += DIC_UPPER_RE[DIC_UPPER.index(i)]
        else:
            ciphertext += i
    return ciphertext
def decrypt_atbash(string):
    plaintext = ""
    for i in string:
        if i in DIC_LOWER_RE:
            plaintext += DIC_LOWER[DIC_LOWER_RE.index(i)]
        elif i in DIC_UPPER:
            plaintext += DIC_UPPER[DIC_UPPER_RE.index(i)]
        else:
            plaintext += i
    return plaintext
if __name__ == '__main__':
    ciphertext_ = encrypt_atbash("HaHa")
    plaintext_ = decrypt_atbash("uozt{Zgyzhv_xlwv_uiln_xguhsld}")
    print(plaintext_)

39. 点击代码?

40.上链密码

2.对称密码。

以U2Fsd开头的一般包括AES、DES、3DES等算法。

3. 哈希值

特征一般是小写字母和数字的混合,一眼就能看出每个字符都是一个十六进制的字符(0-9,af),必然是一个哈希值,比如这样:

只需找到一个在线网站并检查:

MD5免费在线解密破解_MD5在线加密-SOMD5

CTF()中那些充满想象力的编码和加密

- THE END -