• CTF密码学常见加解密总结


    CTF密码学常见加解密总结

                                               CTF密码学总结

    之前拜读了各路大神关于密码学的文章,讲解的十分透彻,感觉顿时领悟。但是后来需要用时,脑子里一片空白,空白,白,白,白......所以写篇文章以记之,以免再次忘记23333。废话少说,上正文。

    1.base64编码

         Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,base64就是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应4个base64单元,即3个字节可表示4个可打印字符。它可用来作为电子邮件的传输编码。在base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同系统中而不同。

     

    例如:编码‘Man'
    在此例中,base64算法将3个字符编码转为4个字符
    base64索引表:
    如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个“=”号,代表补足的字节数。也就是说,当最后剩余一个八位字节(一个byte)时,最后6位的base64字节块有四位是0值,最后附加上两个等号;如果最后剩余两个八位字节(2byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号
    例如:

    当看到==号的加密方式时,可以考虑base64。例:cTZ1NQ==解码之后为q5u5。
     
    关于base32:
    base32中只有大写字母(A-Z)和数字234567


     

    关于base16:
    base16中只有数字0-9以及大写字母ABCDEF

    base64在线解密   摘自: CTF中Crypty(密码类)入门必看

    2.凯撒密码

          凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。现今又叫“移位密码”,只不过移动的位数不一定是3位而已。
    下面我们总结一下:
    明密对照表:
    明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
    密文:TUVWXYZABCDEFGHIJKLMNOPQRS
    注:广义上的凯撒是位移的。
    凯撒是没有密匙的,即使没有密匙也能将它破解出来,因为凯撒移位密码只有25种密匙,最多就是将这25种可能性挨个检测一下可以了,这就是我们所说的暴力破解法。也可在用软件破解,不过我提倡用人工的。
    (有关凯撒密码的我了解还不是很详细,后续。。。)

    3.栅栏密码

     
    栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文,这里以2栏栅栏加密为例。
     
    明文:The quick brown fox jumps over the lazy dog

    去空格:Thequickbrownfoxjumpsoverthelazydog

    分组:Th eq ui ck br ow nf ox ju mp so ve rt he la zy do g

    第一组:Teucbonojmsvrhlzdg

    第二组:hqikrwfxupoeteayo

    密文:Teucbonojmsvrhlzdghqikrwfxupoeteayo
    例:

    一只小羊翻过了2个栅栏KYsd3js2E{a2jda}解密后为KEY{sad23jjdsa2}

    4.摩斯密码

    摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人艾尔菲德·维尔(Alfred Lewis Vail)与萨缪尔·摩尔斯(Samuel Finley Breese Morse)在1836年发明。
    摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种:

    1.点(.)

    2.划(-)

    3.每个字符间短的停顿(在点和划之间的停顿)

    4.每个词之间中等的停顿

    5.以及句子之间长的停顿

    摩尔斯电码字母与数字对应表:
    例如:
    原文本:I LOVE YOU TOO 
    加密后:../.-../---/...-/./-.--/---/..-/-/---/---

     

    5.ASCII编码

    ASCII码大致可以分为三部分组成:
    第一部分是:ASCII非打印控制字符
    第二部分是:ASCII打印字符;
    第三部分是:扩展ASCII打印字符。
     
    例:

    突然天上一道雷电gndk€rlqhmtkwwp}z分析gndk€rlqhmtkwwp}z这个格式有点像flag{*******}?

    我们比较一下"gndk"与"flag"的ASCII码

    gndk的10进制的ASCII码分别是:103 110 100 107

    flag的10进制的ASCII码分别是  :102 108  97  103

    发现ASCII以此减少 1 2 3 4,所以以此类推解密得flag{lei_ci_jiami}

    6.Brainfuck/Ook!编码

    例:

    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
    Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook.
    Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook!
    Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook.
    Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
    Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook! Ook.
    Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
    Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook!
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook?
    Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook.
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
    Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
    Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
    Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.

     为Ook!编码,在线转文本后为flag{ok-ctf-1234-admin}
    1.  
      +++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
    2.  
      ++++[ ->+++ +<]>+ +++.< +++[- >---< ]>--- .---- .<+++ ++++[ ->--- ----<
    3.  
      ]>--- ----- ----- .<+++ ++++[ ->+++ ++++< ]>+++ ++.<+ +++++ +[->- -----
    4.  
      -<]>. <++++ ++++[ ->+++ +++++ <]>++ .<+++ [->-- -<]>- ----. <++++ +++[-
    5.  
      >---- ---<] >---- ----. +++++ +..++ +++.+ .<+++ [->-- -<]>- --.<+ +++++
    6.  
      +[->+ +++++ +<]>+ ++.++ +.+++ +++++ +.--- -.+++ ++.<+ ++[-> +++<] >++++
    7.  
      ++.<
    这个为brainfuck,在线解码网站解码即可。

    附上链接:Brainfuck/Ook!在线编码解码

     还有许多类型的编码,请参照:一段base64的解体过程

     

    7.当铺密码

         当铺密码就是一种将中文和数字进行转化的密码算法相当简单:当前汉字有多少笔画出头,就是转化成数字几。例如:

     

    王夫 井工 夫口 由中人 井中 夫夫 由中大:67 84 70 123 82 77 125  丰富一下知识面2333.。。

    8.培根密码

         培根密码中的ab,代表的是数学二进制中的0和1.通过下列的密码表进行加密和解密:
    第一种方式:
    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

    感兴趣的可以参考大牛的文章:培根密码

    9.猪圈密码

          猪圈密码(亦称朱高密码共济会密码共济会员密码),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。

     

    明文字母和对应密文:

    明文:THE QUICK BROWN FPX JUMPS OVER THE LAZY DOG
    密文:

     

    10.unicode编码

    例如:原文本:You had me at hello

    编码后u0059u006fu0075u0020u0068u0061u0064u0020u006du0065u0020u0061u0074u0020u0068u0065u006cu006cu006f

     

     
    11.URL编码

       url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。

    12.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。

    ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。用于ROT47编码的字符其ASCII值范围是33-126

    例:Good Day经过ROT47加密后为v@@5 s2JP ROT5/13/18/47在线加解密

    13.Rabbit加密

          就给出几个例子参考下好了。。。

    明文I Love You小可爱无密匙加密后密文为U2FsdGVkX1/ouFei55jKdzY1fWNS4jxHVNf/AfKWjnBrOGY=

    明文I Love You 521无密匙加密后密文为U2FsdGVkX19DvuEo5PvBA8TuLrM2t+EZBvUkzlAa

    明文I Love You 521密匙为666加密后密文为U2FsdGVkX18w6vxXxux/ivRVwo3xMzTxmUyk7cHz

    Rabbit在线加解密

    14.跳舞的小人

         来自夏洛克福尔摩斯在《归来记》中侦探案件使用的一种加密方式。

         对应的明文是

    AT ELRIGES (住在埃尔里奇)   COME ELSIE (来吧 埃尔茜)   NEVER (决不)   ELSIE PREPARE TO MEET THY GOD (埃尔茜 准备见上帝吧) 

     

     15.QWE加密

             从电脑键盘上的字母从Q开始数,顺序是Q W E R T Y U I。。。对应的字母顺序依次是A B C D E F G H 也就是说Q=A,W=B,E=C,依次类推。

            还有很多的加密方式没有列出,真的是很多很多啦。暂时先写这么多比较经典的,等以后了解的更深入了再更。如果还有ctf中比较经典的加密方式我没列出的,欢迎大家在评论中介绍哦,一起学习哒(●'◡'●)。

  • 相关阅读:
    zoj 2316 Matrix Multiplication 解题报告
    BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
    codeforces 463C. Gargari and Bishops 解题报告
    codeforces 463B Caisa and Pylons 解题报告
    codeforces 463A Caisa and Sugar 解题报告
    CSS3新的字体尺寸单位rem
    CSS中文字体对照表
    引用外部CSS的link和import方式的分析与比较
    CSS样式表引用方式
    10个CSS简写/优化技巧
  • 原文地址:https://www.cnblogs.com/liume/p/11872428.html
Copyright © 2020-2023  润新知