【置顶】本帖子只分享一些楼主常用的基本加密方式,而不是介绍常见密码种类。
(先说一下基本的概念)引用 密文:加了密的的文字
明文:加密之前的文字
加密:把明文转换成密文
解密:把密文转换成明文
一、利用位移来进行加密
如果你需要加密的文字形式是有固定顺序的(比如abcdefg,012345,αβγδεζηθικ,aoeiuü等),可以以某个位移向前或向后推移得到密文。
举几种常用的例子。
1.凯撒加密法 [字母+数字位移]
例如我要对yanzero进行加密,以3作为密钥(所有字母向后推三位),那么根据规则,密文应该是bdqchur,加密规则为+3。
凯撒加密有个常见的变种是维吉尼亚加密。
2.音阶加密法 [数字(1~7)+数字(1~11)位移]
例如我要对12315进行加密,以6作为密钥(所有数字向后推六个半音),那么根据规则,密文应该是#45b6b5#2,加密规则为+6。
这其实是对凯撒加密的变种,在乐理中1234567代表五个不同的音,因此这种方式的缺陷就是只能加密只有1234567这七个数字的明文,例如我要对数字133569加密就不能采用这种方式。而它的好处是有些密文有两种不同的表达形式(例如#3、4甚至是bb5)。
3.埃特巴什码 [字母+对换]
例如我要对yanzero进行加密,利用埃特巴什码的加密规则,密文应该是bzmavil。
这是另一种意义上的位移,将所有字母的位置进行对称交换就得到了密文,是一种比较简单但是用的不多的加密方式。
4.栅栏加密法 [字母/数字+数字分组]
例如我要对yanzero0进行加密,以3作为密钥,那么根据规则,密文应该是yzoae0nr,加密规则为/3。
这是一种二维层面上的位移,将字母按照密钥分组(例如我是每三个分一组),再把新分好的组顺序排列。
5.幻方加密 [数字(没有0)]
例如我要对118877进行加密,那么根据幻方加密的规则,密文应该是992233。
这是几何意义上的位移,1→9,2→8,3→7,…,是根据幻方排列的对应位置。
二、利用多个元素表达一个元素
这就对于任何形式的明文都试用了,简单来说就是f(x)→f(a1,a2,a3,a4,…),当然一般是两到三个。
依然举几种常用的例子。
1.棋盘密码 [字母+二元]
例如我要对yanzero进行加密,按照棋盘密码的规则,密文应该是54113355154234。
加密方式参考我在帖子最后贴的密码整理帖。
2.playfair(普莱费尔/波雷费) [字母+二元]
例如我要对yanzero进行加密,按照playfair的规则,密文应该是dvxpbuny。
加密方式参考我在帖子最后贴的密码整理帖。
3.凯撒方阵 [字母+二元]
例如我要对yan进行加密,按照凯撒方阵的规则,密文应该是3-23,25-3,7-8。
叫做凯撒方阵的原因是因为这种加密方式实质上是对每个字母进行不同密钥的凯撒变换。加密方式参考我在帖子最后贴的密码整理帖,凯撒方阵和维吉尼亚表格的排列方式是一样的。
类似的还有螺旋矩阵和四方密码,因为都比较复杂,这里就不展开讲莉。
三、用另一种元素代替现有的元素
简单来说,就是创造一种新的语言。这一种加密方式常见的有培根、摩斯、夏多、猪圈等。
参考文献: 收集整理的密码 |