CTF密码学 您所在的位置:网站首页 字母方阵密码 CTF密码学

CTF密码学

2023-08-11 11:57| 来源: 网络整理| 查看: 265

CTF密码学-编码基础知识点总结

0x01 目录

        常见编码:

                1.ASCII编码

                2.Base64/32/16编码

                3.shellcode编码

                4.Quoted-printable编码

                5.XXencode编码

                6.UUencode编码

                7.URL编码

                8.Unicode编码

                9.Escape/Unescape编码

                10.HTML实体编码

11.UTF-8编码

12.Hash算法&加盐Hash算法

13.MD5算法

                14.敲击码(Tap code)

                15.莫尔斯电码(Morse Code)

        换位加密:

                1.栅栏密码(Rail-fence Cipher)

                2.曲路密码(Curve Cipher)

                3.列移位密码(Columnar Transposition Cipher)

        替换加密:

                1.埃特巴什码(Atbash Cipher)

                2.凯撒密码(Caesar Cipher)

                3.ROT5/13/18/47

                4.简单换位密码(Simple Substitution Cipher)

                5.希尔密码(Hill Cipher)

                6.猪圈密码(Pigpen Cipher)

                7.波利比奥斯方阵密码(Polybius Square Cipher)

                8.夏多密码(曲折加密)

                9.普莱菲尔密码(Playfair Cipher)

                10.维吉尼亚密码(Vigenère Cipher)

                11.自动密钥密码(Autokey Cipher)

                12.博福特密码(Beaufort Cipher)

                13.滚动密钥密码(Running Key Cipher)

                14.Porta密码(Porta Cipher)

                15.同音替换密码(Homophonic Substitution Cipher)

                16.仿射密码(Affine Cipher)

                17.培根密码(Baconian Cipher)

                18.ADFGX和ADFGVX密码(ADFG/VX Cipher)

                19.双密码(Bifid Cipher)

                20.三分密码(Trifid Cipher)

                21.四方密码(Four-Square Cipher)

                22.棋盘密码(Checkerboard Cipher)

                23.跨棋盘密码(Straddle Checkerboard Cipher)

                24.分组摩尔斯替换密码(Fractionated Morse Cipher)

                25.Bazeries密码(Bazeries Cipher)

                26.Digrafid密码(Digrafid Cipher)

                27.格朗普雷密码(Grandpré Cipher)

                28.盲文密码(Blind ciphers)

                29.键盘密码(Keyboard Cipher)

        代码混淆加密:

                1.asp混淆加密

                2.php混淆加密

                3.css/js混淆加密

                4.VBScript.Encode混淆加密

                5.ppencode

                6.rrencode

                7.jjencode/aaencode

                8.JSfuck

                9.jother

                10.brainfuck

11.uuencode

0x02 正文

常见编码:

1.ASCII编码:

ASCII编码大致可以分作三部分组成:

第一部分是:ASCII非打印控制字符(参详ASCII码表中0-31);

第二部分是:ASCII打印字符,也就是CTF中常用到的转换;

第三部分是:扩展ASCII打印字符 

                

                2.Base64/32/16编码:

base64、base32、base16可以分别编码转化8位字节为6位、5位、4位。16,32,64分别表示用多少个字符来编码, Base64编码要求把3个8位字节

转化为4个6位的字节,之后在6位的前面补两个0,形成8位一个字节的形式,6位2进制能表示的最大数是2的6次方是64,这也是为什么是64

个字符(A-Z,a-z,0-9,+,/这64个编码字符,=号不属于编码字符,而是填充字符)。

源文本:The quick brown fox jumps over the lazy dog

编码后:Base64

VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZw==

3.shellcode编码:

源文本:The quick brown fox jumps over the lazy dog

编码后:

\x54\x68\x65\x7f\x71\x75\x69\x63\x6b\x7f\x62\x72\x6f\x77\x6e\x7f\x66\x6f\x78\x7f\x6a\x75\x6d\x70\x73\x7f\x6f\x76\x65\x72\x7f\x74\

x68\x65\x7f\x6c\x61\x7a\x79\x7f\x64\x6f\x67

4.Quoted-printable编码:

它是多用途互联网邮件扩展(MIME) 一种实现方式。有时候我们可以邮件头里面能够看到这样的编码。 

源文本:敏捷的棕色狐狸跳过了懒惰的狗

编码后:

=E6=95=8F=E6=8D=B7=E7=9A=84=E6=A3=95=E8=89=B2=E7=8B=90=E7=8B=B8=E8=B7=B3=E8=BF=87=E4=BA=86=E6=87=92=E6=83=B0=E7=9A=84=E7=8B=97

编码解码[链接](http://www.mxcz.net/tools/QuotedPrintable.aspx)

5.XXencode编码:

XXencode将输入文本以每三个字节为单位进行编码。如果最后剩下的资料少于三个字节,不够的部份用零补齐。这三个字节共有24个Bit,以6bit

为单位分为4个组,每个组以十进制来表示所出现的数值只会落在0到63之间。以所对应值的位置字符代替。它所选择的可打印字符是:

+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,一共64个字符。跟base64打印字符相比,就是UUencode多一个“-” 字

符,少一个”/” 字符。

源文本:The quick brown fox jumps over the lazy dog

编码后:hJ4VZ653pOKBf647mPrRi64NjS0-eRKpkQm-jRaJm65FcNG-gMLdt64FjNkc+

编码解码[链接](http://web.chacuo.net/charsetxxencode)

6.UUencode编码:

UUencode是一种二进制到文字的编码,最早在unix 邮件系统中使用,全称:Unix-to-Unix encoding,UUencode将输入文本以每三个字节为单位进行

编码,如果最后剩下的资料少于三个字节,不够的部份用零补齐。三个字节共有24个Bit,以6-bit为单位分为4个组,每个组以十进制来表示所出

现的字节的数值。这个数值只会落在0到63之间。然后将每个数加上32,所产生的结果刚好落在ASCII字符集中可打印字符(32-空白…95-底线)的

范围之中。

源文本:The quick brown fox jumps over the lazy dog

编码后:M5&AE('%U:6-K(&)R;W=N(&9O>"!J=6UP>>Gronsfeld([2,20,11,45,20,43,4]).decipher('VBPJOZGMVCHQEJQRUNGGWQPPKNYINUKRXFK')

THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'

在线加解密[传送门](Gronsfeld Cipher)

11.自动密钥密码:

(1)介绍

自动密钥密码(Autokey Cipher)是多表替换密码,与维吉尼亚密码密切相关,但使用不同的方法生成密钥,通常来说要比维吉尼亚密码更安全。自动

密钥密码主要有两种,关键词自动密钥密码和原文自动密钥密码.下面我们以关键词自动密钥为例:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

关键词:CULTURE

自动生成密钥:CULTURE THE QUICK BROWN FOX JUMPS OVER THE

接下来的加密过程和维吉尼亚密码类似,从密表可得:

密文:VBP JOZGD IVEQV HYY AIICX CSNL FWW ZVDP WVK

(2)已知关键词加解密

>>>from pycipher import Autokey

>>>Autokey('CULTURE').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')

'VBPJOZGDIVEQVHYYAIICXCSNLFWWZVDPWVK'

>>>Autokey('CULTURE').decipher('VBPJOZGDIVEQVHYYAIICXCSNLFWWZVDPWVK')

'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/autokey/)

(3)未知关键词破解

推荐去看这篇[自动密钥密码分析文

章](http://www.practicalcryptography.com/cryptanalysis/stochastic-searching/cryptanalysis-autokey-cipher/),基于文中的算法实现的工

具来破解示例。

密文:

isjiqymdebvuzrvwhmvysibugzhyinmiyeiklcvioimbninyksmmnjmgalvimlhspjxmgfiraqlhjcpvolqmnyynhpdetoxemgnoxl

解密:

(ps:从klen 13可以看出使用的关键词为'FORTIFICATION')

明文:

DESPITEBEINGMORESECURETHANTHEVIGENERECIPHERTHEAUTOKEYCIPHERISSTILLVERYEASYTOBREAKUSINGAUTOMATEDMETHODS

将明文转换成可读句子:

despite being more secure than the vigenere cipher the autokey cipher is still very easy to break using automated methods

12.博福特密码:

(1)介绍

博福特密码(Beaufort Cipher),是一种类似于维吉尼亚密码的代换密码,由弗朗西斯·蒲福(Francis Beaufort)发明。它最知名的应用是Hagelin M-209

密码机。博福特密码属于对等加密,即加密演算法与解密演算法相同。

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

密钥(循环使用,密钥越长相对破解难度越大):CULTURE

加密过程:如果第一行为明文字母,第一列为密文字母,那么沿明文字母T列出现密钥字母C的行号就是密文字母J,以此类推。

密文:JNH DAJCS TUFYE ZOX CZICM OZHC BKA RUMV RDY

(2)已知密钥加解密

>>>from pycipher import Beaufort

>>>Beaufort('CULTURE').encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')

'JNHDAJCSTUFYEZOXCZICMOZHCBKARUMVRDY'

>>>Beaufort('CULTURE').decipher('JNHDAJCSTUFYEZOXCZICMOZHCBKARUMVRDY')

'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/beaufort/)

13.滚动密钥密码:

滚动密钥密码(Running Key Cipher)和维吉尼亚密码有着相同的加密机制,区别是密钥的选取,维吉尼亚使用的密钥简短,而且重复循环使用,与之

相反,滚动密钥密码使用很长的密钥,比如引用一本书作为密钥。这样做的目的是不重复循环使用密钥,使密文更难破译,尽管如此,滚动密钥密码

还是可以被攻破,因为有关于密钥和明文的统计分析模式可供利用,如果滚动密钥密码使用统计上的随机密钥来源,那么理论上是不可破译的,因为

任何可能都可以成为密钥,并且所有的可能性都是相等的。

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

密钥:选取C语言编程(1978版)第63页第1行"errors can occur in several places. A label has...",去掉非字母部分作为密钥(实际选取的密

钥很长,长度至少不小于明文长度)。

加密过程:加密过程和维吉尼亚密码加密过程相同

密文:XYV ELAEK OFQYH WWK BYHTJ OGTC TJI DAK YESR

已知密钥在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/running-key/)

14.Porta密码:

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

相同的特点。

密表:

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

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

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

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

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

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

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

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

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

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

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

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

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

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

密钥(循环使用,密钥越长相对破解难度越大):CULTURE

加密过程:明文字母T列与密钥字母'行交点就是密文字母F,以此类推。

密文:FRW HKQRY YMFMF UAA OLWHD ALWI JPT ZXHC NGV

已知密钥在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/porta/)

破解:

Porta密码可以被以[维吉尼亚密

码](http://www.practicalcryptography.com/cryptanalysis/stochastic-searching/cryptanalysis-vigenere-cipher-part-2/)破解相类似方式进

行自动攻破,破解Porta密码第一步是先确定密钥长度,这里推荐一篇关于使用[重合指数算

法](https://en.wikipedia.org/wiki/Index_of_coincidence)确定为维吉尼亚密钥长度[文

章](http://www.practicalcryptography.com/cryptanalysis/stochastic-searching/cryptanalysis-vigenere-cipher/)。

15.同音替换密码:

同音替换密码(Homophonic Substitution Cipher)是单字母可以被其他几种密文字母同时替换的密码,通常要比标准替换密码破解更加困难,破解标

准替换密码最简单的方法就是分析字母出现频率,通常在英语中字母'E'(或'T')出现的频率是最高的,如果我们允许字母'E'可以同时被3种不同字符

代替,那么就不能还是以普通字母的频率来分析破解,如果允许可代替字符越多,那么密文就会更难破译。

常见代换规则表:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

密文(其中一种):6CZ KOVST XJ0MA EQY IOGL4 0W1J UC7 P9NB F0H

破解:

如果同音替换密码的同音词个数很多,那么破解它难度很大,通常的方法采取类似破解替换密码的"爬山算法",除了找到一个明文字母映射几个字符

之外,我们还需要确定映射了那些字符,可以尝试[2层嵌套"爬山算法"](http://www.cs.sjsu.edu/faculty/stamp/RUA/homophonic.pdf)来破解,外

层确定映射的数量,内层确定映射字符。

16.仿射密码:

**略**

17.培根密码:

培根密码(Baconian Cipher)是一种替换密码,每个明文字母被一个由5字符组成的序列替换,最初的加密方式就是由'A'和'B'组成序列替换明文(所

以你当然也可以用别的字母),比如字母'D'替换成"aaabb",以下是全部的对应关系(另一种对于关系是每个字母都有唯一对应序列,I和J与U/V各自

都有不同对应序列):

A = aaaaa  I/J = abaaa     R = baaaa

B = aaaab    K = abaab     S = baaab

C = aaaba    L = ababa     T = baaba

D = aaabb    M = ababb   U/V = baabb

E = aabaa    N = abbaa     W = babaa

F = aabab    O = abbab     X = babab

G = aabba    P = abbba     Y = babba

H = aabbb    Q = abbbb     Z = babbb

明文:T H E F O X

密文:baaba aabbb aabaa aabab abbab babab

加解密[传送门](http://rumkin.com/tools/cipher/baconian.php)

18.ADFGX和ADFGVX密码:

(1)ADFGX密码

ADFGX密码(ADFGX Cipher)结合了改良过的Polybius方格替代密码与单行换位密码的矩阵加密密码,使用了5个合理的密文字母:A,D,F,G,X,

这些字母之所以这样选择是因为当转译成摩斯电码(ADFGX密码是德国军队在一战发明使用的密码)不易混淆,目的是尽可能减少转译过程的操作错误。

加密矩阵示例:

        A  D  F  G  X

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

    A | p  h  q  g  m

    D | e  a  y  n  o

    F | f  d  x  k  r

    G | c  v  s  z  w

    X | b  u  t i/j l

明文:THE QUICK BROWN FOX

结果矩阵加密:

XF AD DA   AF XD XG GA FG   XA FX DX GX DG   FA DX FF

列移位密钥:how are u

密文:DXADF AGXF XFFXD FXGGX DGFG AADA ADXXF

已知密钥加解密:

>>>from pycipher import ADFGX

>>>a = ADFGX('phqgmeaynofdxkrcvszwbutil','HOWAREU')

>>>a.encipher('THE QUICK BROWN FOX')

'DXADFAGXFXFFXDFXGGXDGFGAADAADXXF'

>>>a.decipher('DXADFAGXFXFFXDFXGGXDGFGAADAADXXF')

'THEQUICKBROWNFOX'

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/adfgx-cipher/)

(2)ADFGVX密码

ADFGVX密码实际上就是ADFGX密码的扩充升级版,一样具有ADFGX密码相同的特点,加密过程也类似,不同的是密文字母增加了V,使得可以再使用

10数字来替换明文。

加密矩阵示例:

        A  D  F  G  V  X

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

    A | p  h  0  q  g  6

    D | 4  m  e  a  1  y

    F | l  2  n  o  f  d

    G | x  k  r  3  c  v

    V | s  5  z  w  7  b

    X | j  9  u  t  i  8

19.双密码:

双密码(Bifid Cipher)结合了波利比奥斯方阵换位密码,并采用分级实现扩散,这里的“双”是指用2个密钥进行加密。双密码是由法国Felix

Delastelle发明,除此之外Felix Delastelle还发明了三分密码(Trifid Cipher),四方密码(Four-Square Cipher)。还有一个[两方密

码](https://en.wikipedia.org/wiki/Two-square_cipher)(Two-Square)与四方密码类似,[共轭矩阵双密

码](http://www.thonky.com/kryptos/cm-bifid-cipher)(Conjugated Matrix Bifid Cipher)也是双密码的变种。

示例密阵:

           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

分组:

51215 54354 35233 3

42133 52521 11521 4

合并:

5121542133 5435452521 3523311521 34

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

(2)已知密阵加解密

>>>from pycipher import

>>>Bifid('phqgmeaylnofdxkrcvszwbuti',5).encipher('THE QUICK BROWN FOX')

'WETEDTKZNEKYOMEX'

>>>Bifid('phqgmeaylnofdxkrcvszwbuti',5).decipher('WETEDTKZNEKYOMEX')

'THEQUICKBROWNFOX'

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/bifid/)

(3)未知密阵破解

手工分析破解双密码是有一定难度的,每个字母都是同过3个数字进行非线性代替转换,而且之后还会对字母顺序进行打乱,这样使双密码比一些替

换密码和换位密码更难破解。然而,现在是计算机时代,这张加密方式没有安全性可言,通过[模拟退

火](http://baike.baidu.com/link?url=mkceUr0W4L7B7UVQxc-dUkXKPJbj9v4YyBh_hrskt5iXk99UdnjW6mZ_YxoJO1PkT1zdjEZD2hd7TCMiSxpOma)算法就

能快速找到双密码的密阵。

这里推荐一篇详细的[双密码破解分

析](http://www.practicalcryptography.com/cryptanalysis/stochastic-searching/cryptanalysis-bifid-cipher/)的文章,基于模拟退火算法实

现的工具破解示例:

密文:

KWTAZQLAWWZCPONIVBTTBVQUZUGRNHAYIYGIAAYURCUQLDFTYVHTNQEENUPAIFCUNQTNGITEFUSHFDWHRIFSVTBISYDHHASQSROMUEVPQHHCCRBYTQBHWYRRHTEPEKHOBF

SZUQBTSYRSQUDCSAOVUUGXOAUYWHPGAYHDNKEZPFKKWRIEHDWPEIOTBKESYETPBPOGTHQSPUMDOVUEQAUPCPFCQHRPHSOPQRSSLPEVWNIQDIOTSQESDHURIEREN

解密:

得到加密矩阵:

        G B C M K

        D H U E T

        L V Y W I

        X O Z S P

        N F A R Q

明文:

CRYPTANALYS IS OF BIFID BY HAND IS ACTUALLY FAIRLY DIFFICULT THE FRACTIONATING NATURE OF THE CIPHER IE EACH LETTER IS SUBSTITUTED BY

CHARACTERS THEN THESE CHARACTERS ARE IUM BLED WHICH WILL PULL THEM APART MAKES THE CIPHER MUCH STRONGER THAN SUBSTITUTION CIPHERS OR

TRANSPOSITION CIPHER SON THEIR OWN

20.三分密码:

三分密码(Trifid Cipher)结合换位和替换,三分密码与双密码非常相似,差别之处就是用除了3×3×3的密阵代替5×5密阵。

示例密阵:

        密阵顺序 = 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.

经过密阵转换:

        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为例):

        THEQU ICKBR OWNFO X.

        23131 31223 31233 22

        33132 22232 13311 21

        31132 23221 32113 32

合并:

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

在经过密阵转换后密文:

        231313313231132312232223223221312331331132113222132

        NOONWGBXXLGHHWSKW

想要深入了解三分密码并破解三分密码的小伙伴推荐去看LANIKI教授的一篇密码课程章节的[讲

义](http://www.und.nodak.edu/org/crypto/crypto/lanaki.crypt.class/lessons/lesson17.zip)

21.四方密码:

四方密码(Four-Square Cipher)是类似普莱菲尔密码双字母加密密码,这样使加密效果强于其他替换密码,因为频率分析变得更加困难了。

四方密码使用4个预先设置的5×5字母矩阵,每个矩阵包括25个字母,通常字母j被融入到i中(维基百科上说q被忽略,不过这不重要,因为

q和j都是很少出现的字母),通常左上和右下矩阵式是标准字母排序明文矩阵,右上和左下矩阵是打乱顺序的密钥矩阵。

示例矩阵:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

整理明文(分组不够时用X填充):TH EQ UI CK BR OW NF OX JU MP SO VE RT HE LA ZY DO GX

加密过程:分别在明文矩阵中找到TH,分别找到他们在右上矩阵有左下矩阵的交点字母ES就是密文,以此类推。

密文:ESZWQAFHGTDKWHRKUENYQOLMQTUNWMBPTGHQ

(2)已知密钥矩阵加解密

>>>from pycipher import Foursquare

>>>fs = Foursquare('zgptfoihmuwdrcnykeqaxvsbl','mfnbdcrhsaxyogvituewlqzkp')

>>>fs.encipher('THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG')

'ESZWQAFHGTDKWHRKUENYQOLMQTUNWMBPTGHQ'

>>>fs.decipher('ESZWQAFHGTDKWHRKUENYQOLMQTUNWMBPTGHQ')

'THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG'

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/four-square/)

22.棋盘密码:

棋盘密码(Checkerboard Cipher)是使用一个波利比奥斯方阵和两个密钥作为密阵的替换密码,在波利比奥斯方阵中J字母往往被包含在I字母中。

示例密阵:

            Q   U   I   C   K

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

        B | K   N  I/J  G   H

        R | P   Q   R   S   T

        O | O   Y   Z   U   A

        W | M   X   W   V   B

        N | L   F   E   D   C

经过密阵替换:

明文:T H E Q U I C K B R O W N F O X

密文:RK BK RU OC OC BI NK BQ WK RI OQ WI BU NU OQ WU

23.跨棋盘密码:

跨棋盘密码(Straddle Checkerboard Cipher)是一种替换密码,当这种密码在结合其他加密方式,加密效果会更好。

棋盘示例(选择3和7作为变换):

          0 1 2 3 4 5 6 7 8 9

          f k m   c p d   y e

3: h b i g q r o s a z

7: l u t j n w v x    

明文: T H E Q U I C K B R O W N F O X

经过加密棋盘替换得到密文:72 30 9 34 71 32 4 1 31 35 36 75 74 0 36 77

当然我们还可以继续用其他的加密方式在对跨棋盘密码加密出的结果再进行加密:

示例变换密钥:83729

             8372983729837298372983729837

            +7230934713241313536757403677

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

             5502817432078501808630122404

在经过棋盘转换后:

        5502817432078501808630122404

ppfmyk n if  pfkyfyd hkmmcfc

在线加解密[传送门](http://www.practicalcryptography.com/ciphers/classical-era/straddle-checkerboard/)

24.分组摩尔斯替换密码:

分组摩尔斯替换密码(Fractionated Morse Cipher)首先把明文转换为莫尔斯电码,不过每个字母之间用x分开,每个单词用xx分开。然后使用密

钥生成一个替换密表,这个密表包含所有`. - x`组合的情况(因为不会出现`xxx`的情况,所以一共26种组合)。

密钥:MORSECODE

密表:

        MORSECDABFGHIJKLNPQTUVWXYZ

        .........---------XXXXXXXX

        ...---XXX...---XXX...---XX

        .-X.-X.-X.-X.-X.-X.-X.-X.-

说明:密表下半部分是固定的,密表的安全性以及加密效果主要取决于使用的密钥。

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

(类似)摩尔斯电码:

-x....x.xx--.-x..-x..x-.-.x-.-xx-...x.-.x---x.--x-.xx..-.x---x-..-xx.---x..---x.--.x...xx---x...-x.x.-.xx-x....x.xx.-..x.-x--..x-.

--xx-..x---x--.

说明:明文在转换为(类似)摩尔斯电码后进行每3个字符分组,再进行密表的查表。

密文(经过密表替换):LMUWC OQVHG ZMTAK EVYSW NOYJQ NLIQB JQCDH XMDYF TWRGP FWNH

已知密钥在线加解密[传送门](http://ruffnekk.stormloader.com/fractmorse_tool.html)

25.Bazeries密码:

Bazeries密码(Bazeries Cipher)是换位密码和替换密码的组合,使用两个波利比奥斯方阵,一个明文字母方阵,使用一个随机的数字(一般小于

1000000)的生成一个密钥矩阵同时作为第一轮明文划分分组,比如2333这个数字翻译为英文便是TWO THOUSAND THREE HUNDRED THIRTY THREE,从第一

个字母T开始选取不重复的字母,之后再从字母表中按序选取没有出现的字母组成密钥矩阵。

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

随机数字:2333

明文矩阵:

        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

示例密钥矩阵:

        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

明文分组:

        2   3   3   3   2   3   3   3   2   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

使用密钥矩阵替换:

        IL XHP QEG KDS YR CKW NXG KBV PU ILD TOP FMZ AK

(比如H在明文矩阵对应到密钥矩阵的位置就是I)

已知密钥在线加解密[传送门](http://ruffnekk.stormloader.com/bazeries_tool.html)

26.Digrafid密码:

Digrafid密码(Digrafid Cipher)使用两个密钥生成分别生成类似波利比奥斯方阵的3x9方格的密表。,主要有3分组和4分组两类。

第一个方阵密钥:digrafid

第二个方阵密钥:cipher

密表:

1 2 3 4 5 6 7 8 9

D I G R A F D B C 1 2 3

E H J L M N O P Q 4 5 6

S T U V W X Y Z # 7 8 9

                  c f s 1

                  i g t 2

                  p j u 3

                  h k v 4

                  e l w 5

                  r m x 6

                  a n y 7

                  b o z 8

                  d q # 9

明文:THE QUICK BROWN FOX

密表转换(以4分组为例):

        Th Eq Ui Ck Br Ow Nf Ox

        2  1  3  9  8  7  6  7

        7  5  7  2  1  6  5  6

        4  9  2  4  6  5  1  6

说明:T在第一矩阵第2列,h在第二矩阵第4行,T所在的行与h所在的列相交的位置数字为7,所以Th表示为274。

转换密文:

        213 975 724 924   876 716 566 516

        Ip  #e  Dk  Ck    Zr  Dr  Mx  Ar

27.格朗普雷密码:

格朗普雷密码(Grandpré Cipher)是替换密码的一种,一般使用8个8字母的单词横向填充8x8方阵,且第一列为一个单词,并且在方阵中26个字母

都必须出现一次以上。

示例密阵:

明文:T  H  E  Q  U  I  C  K  B  R  O  W  N  F  O

密文:84 27 82 41 51 66 31 36 15 71 67 73 52 34 67

说明:明文中的字母在密阵位置可能不止一个,所以加密结果可能有多种,但是不影响解密。密阵还有6x6,7x7,9x9,10x10几种。显然密阵越大每

个字母被替换的情况就可能越多,那么加密效果就更好。

28.盲文密码:

29.键盘密码:

一般用到的键盘密码就是手机键盘和电脑键盘两种,手机键盘一般为9宫格密码,电脑键盘即密文在电脑键盘上按顺序组成的字母或数字样式。

                

代码混淆加密:

                1.asp混淆加密: http://www.zhaoyuanma.com/aspfix.html

                

2.php混淆加密: http://www.zhaoyuanma.com/phpjmvip.html

3.css/js混淆加密: http://tool.css-js.com/

4.VBScript.Encode混淆加密: http://www.zhaoyuanma.com/aspfix.html

5.PPencode: http://namazu.org/~takesako/ppencode/demo.html

ppencode-Perl把Perl代码转换成只有英文字母的字符串。

6.RRencode: http://www.lab2.kuis.kyoto-u.ac.jp/~yyoshida/rrencode.html

rrencode可以把ruby代码全部转换成符号。

7.JJencode/AAencode: https://tool.zcmzcm.org/aadecode

jjencode将JS代码转换成只有符号的字符串,类似于rrencode,介绍的[PPT](http://utf-8.jp/public/20090710/jjencode.pps),aaencode可以将

JS代码转换成常用的网络表情,也就是我们说的颜文字js加密。

jjencode/aaencode的解密直接在浏览器的控制台里输入密文即可执行解密

8.Jsfuck: http://www.jsfuck.com

JSFuck只用6个字符`[ ]( ) ! + `来编写 JavaScript 程序。

9.Jother: http://tmxk.org/jother

jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。其中8个少量字符包括:`!  + (  ) [  ]

{  }`。只用这些字符就能完成对任意字符串的编码。

jother直接在浏览器(IE可以)的控制台里输入密文即可执行解密:

10.Brainfuck: http://www.splitbrain.org/services/ook

Brainfuck是一种极小化的计算机语言,按照"Turing complete(完整图灵机)"思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简

单”的语言,BrainFuck 语言只有八种符号,所有的操作都由这八种符号(`  > < + - . , [ ]  `)的组合来完成。

明文:hello!

译文:+++++ +++++ [->++ +++++ +++++++ .---. +++++ ++..+ ++.++ +++++ ++++< ]>+++ ++++. ---- -----.

----- -- ----- ----- .


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有