凯撒密码是一种非常古老的密码,其事理是通过字母的位移将原文和密文逐一对应。 举个例子:明文是“Hello world”,偏移量为3。 以是A-->C,B-->D,依次类推, 以是密文便是”Khoor zruog“
凯撒密码是一种非常古老的密码,其事理是通过字母的位移将原文和密文逐一对应。 举个例子:明文是“Hello world”,偏移量为3。 以是A-->C,B-->D,依次类推, 以是密文便是”Khoor zruog“
根据偏移量的不同,还存在一些特定的凯撒密码名称 偏移量为10:Avocat 偏移量为13:ROT13 偏移量为-5:Cassis 偏移量为-6:Cassette

在线解密网站:https://www.qqxiuzi.cn/bianma/kaisamima.php
2. 培根密码(Bacon‘s Cipher)
培根密码加密时,明文中的每个字母都会转换成5个为一组由a和b组成的英笔墨母 如下:
可以看到这类密码有一个很明显的特点:只由a和b组成 但是加密解密的时候不分大小写...... 以是看到这个密码就很随意马虎想到时培根密码 例如:"Hello" --> "aabbbAABAAABABBABABBABBBA"
在线解密网站:https://tool.bugku.com/peigen/
3. 摩斯密码(Morese Cipher)
相信这个密码该当没人不知道吧!
电视剧里发电报一样平常用的都是这个密码。 摩斯密码是一种时通时断的旗子暗记代码,通过不同的排列顺序来表达不同的英笔墨母、数字和标点符号。发明于1837年。 例如:“Hello” --> " .... . .-.. .-.. --- "
在线解密网站:moersima.00cha.net
4. 栅栏密码(Rail-fence Cipher)
栅栏密码,便是把要加密的明文分成N个一组, 然后把每组的第1个字连起来,形成一段无规律的话。(个中N称为栏数) 不过栅栏密码本身有一个潜规则,便是组成栅栏的字母一样平常不会太多。
栅栏密码也分为两种:Z型和W型 好多文章都只讲Z型,但考试常常出W型的,以是我两种都讲一下
Z型(常规)
便是按照N个一组分好后,按列从上到下组合成新的字符串 例如:“Helloworld” N=2时:“Hloolelwrd”;N=3时:“Hlodeorlwl”
W型(变形) 这个很恶心,我研究了半天才搞出来
W型顾名思义,便是把明文按照W型排列,按行输出 个中栏数N即为行数,如图:(只能画出来了)
栅栏密码(W型)在线解密网站:http://www.atoolbox.net/Tool.php?Id=777 栅栏密码(Z型)在线解密网站:https://www.qqxiuzi.cn/bianma/zhalanmima.php
5. 仿射密码(Affine Cipher)
单表加密的一种,字母表的每个字母相应的值利用一个大略的数学函数对应一个数值,再把对应数值转换成字母。 一样平常仿射密码都会给你一个a一个b,这是解密的关键
加密函数:E(x)=(ax+b)mod m; 解密函数:D(x)=a^(-1)(x-b)mod m;
个中涉及到的数学知识是乘法逆元
例子:假设a=5,b=8;明文为AFFINECIPHER 则加密为:
解密为:
而有些仿射密码的题目不会给a和b,而是直接给对应的字符 (2021MSSCTF--Crypto T1)
仿射密码没有在线的解密工具,以是以Python脚本办法展示
def get(a, b): if b == 0: return 1, 0 else: k = a //b remainder = a % b x1, y1 = get(b, remainder) x, y =y1, x1 - k y1 return x, ys = input("请输入解密字符:").upper()a = int(input("请输入a:"))b = int(input("请输入b:"))#求a关于26的乘法逆元x, y = get(a, 26)a1 = x % 26l= len(s)for i in range(l): cipher = a1 (ord(s[i])- 65 - b) % 26 res=chr(cipher + 65) print(res, end='')
6. 猪圈密码(Pigpen Cipher)
(2020第四届强网杯青少年专项赛线上--Crypto--easy_Crypto)
猪圈密码是一种以格子为根本的大略替代密码,逐一对应的 这个玩意儿长这样:
[/i] [i]碰着之后直接用在线解密平台解密即可[/i] [i] 猪圈密码在线解密平台:http://ctf.ssleye.com/pigpen.html
7. 维吉尼亚密码(Vigenère Cipher)
是利用一系列凯撒密码组成密码字母表的加密算法
意思是什么呢?
维吉尼亚密码常日会有两个元素:明文和密钥 密钥的长度不一定要和明文长度一样 加密时,密钥先循环称为密钥流,使其与明文长度相同,然后以偏移量加密
ps:偏移量是指当前字母相对付A的偏移量
举个例子:明文时ATTACKDAWN;密钥为LEMON 首先循环密钥形成密钥流:LEMONLEMONLE 然后根据偏移量进行逐个字符的加密 如第1位明文是A,密钥是L,L的偏移量为12-1=11,则加密后该当为(A+11)mod 26,即为L。
同理,第二位明文是T,密文是E,E的偏移量为5-1=4,则加密后该当为(A+4)mod 26,即为X。
依次类推,可以得到密文LXFOPVEFRNHR。
当然,还可以利用图表进行加密(我以为眼都花了)
i]维吉尼亚密码在线解密网站:http://www.atoolbox.net/Tool.php?Id=856
结尾
以上便是CTF中常常涌现的古典密码 实在有些特色都很明显,一看都能看出来是哪种密码(培根,猪圈等)
像凯撒密码这类一样平常都会给题目提示或者要考试测验 密码学只能多练...没别的方法,多见见就知道是谁了 如果进线下赛了就要去网上找解密脚本了(由于线下赛不让联网哈哈)