CTF+密码学
  • CTF
  • 密码学
    categories: # 分类
    thumbnail: # 略缩图

CTF+密码学

提示:前一段时间团队举行了内部赛,本来觉得密码学类的题应该是最简单的,但是当自己去做题的时候才发现,积累的并不是很多,并且这些东西记不在脑子里。所以打算写一篇文章来记录一下目前所遇到的密码学


@TOC


前言

密码学个人感觉这是一个很容易掌握,但又不好搞得东西。容易掌握是因为这个东西没有门槛任何人都可以做,说它不好搞是因为涉及的东西太多太杂。有时候遇到了题目一时半会想不起来,需要足够的耐心和抗压能力


一、Base家族

很常见的就是base64 base32 base16这三种了
通过结题的过程发现,一般看到“==”号的加密方式了,那不妨试试base64
例如:bTByZSBpcyBwaWc=**解码之后为m0re is pig**
关于base32
base32中只有大写字母(A-Z)和数字234567
base16
base16中只有数字0-9以及大写字母ABCDEF
但是除了这三个常见的,base家族还有其他的好兄弟 base58 base 91 等等,在网上都可以找到

二、凯撒密码

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

三、维吉尼亚密码

维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
e0cw tk rsj? 感兴趣的友友们可以试试噢 密钥是sl

四、栅栏密码

所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
SoLdisgo 感兴趣的可以试试这个的原文是什么
小tips
当你可以在一串字符中看到flag{}就可以尝试使用栅栏密码比如felhaagv{ewtehtehfilnakgw}

五、猪圈密码

猪圈密码(亦称朱高密码、共济会暗号、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。
这里不多说了直接丢一个链接吧 里面还有好多的变形密码
猪圈密码变形

六、摩斯密码

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

2.划(-)

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

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

5.以及句子之间长的停顿
在这里插入图片描述
同样的下面编码可以试试
.-.. — …- . – —– .-. .

七、ASCII编码

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符 。
在这里插入图片描述
对于ASCII码解题的应用

八、弱口令

1.不使用空口令或系统缺省的口令,因为这些口令众所周知,为典型的弱口令。
2.口令长度不小于8个字符。
3.口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
4.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
5.口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
6.口令不应该为用数字或符号代替某些字母的单词。
7.口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
8.至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
简单的说就是根据提供的信息来猜密码

九、培根密码

培根密码中的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
参考大佬文章

十、当铺密码

当铺密码就是一种将中文和数字进行转化的密码,算法相当简单:当前汉字有多少笔画出头,就是转化成数字几。
这是在找其他密码的时候发现的一种加密方式 也多学习吧
当铺密码

其他不常见密码

1.URL编码
url编码又叫百分号编码,是统一资源定位(URL)编码方式。URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI、encodeURIComponent,PHP有 urlencode、urldecode等。编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。
2.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
3.Rabbit加密
wohenshuai没有密钥时的密文U2FsdGVkX1+ft4xC4JD2V9fyoPBB5KIfOtQ=
wohenshuai当密钥为SL时的密文U2FsdGVkX1/lvvE1xQAngFK/rGKJS30nuZA=
4.unicode编码
例如N0bug加密后 &# 78; 0& #98;u&#1 03;
5.跳舞的小人
这个也是通过看大佬博客学习的 来自夏洛克福尔摩斯在《归来记》中侦探案件使用的一种加密方式。
在这里插入图片描述
6.社会主义核心价值观编码
友善爱国公正爱国爱国敬业民主诚信自由公正敬业爱国友善自由诚信平等友善爱国平等友善平等爱国爱国平等诚信自由平等敬业和谐友善自由平等
拿去解密吧 噶哈哈哈哈
7.Quoted-printable
直接上链接Quoted-printable
8.MD5
MD5在线解码

总结

只是总结了这一段自己遇到的和见到的密码 当然一定还有好多的密码等着我和你们去了解 暂时先写到这个 如果大家还看到有什么好的 没见过的加密方式 也欢迎交流交流

最后给大家卖个关子
祓酃鏊虢眔擴灝迣仩嘸難倳,呮啪洧杺亾眔鞹鰝
试试破解这一段吧!!!哈哈哈 加油加油 冲冲冲!

Prev:
Python学习记录1
Next:
Hello World
catalog
catalog