2024年8月31日发(作者:)
摩斯密码以及十种常用加密方法
——阿尔萨斯大官人整理,来源互联网
摩斯密码的历史我就不再讲了,各位可以自行百度,下面从最简单的开始:
时间控制和表示方法
有两种“符号”用来表示字元:划(—)和点(·),或分别叫嗒(Dah)和滴(Dit)
或长和短。
用摩斯密码表示字母,这个也算作是一层密码的:
用摩斯密码表示数字:
1 / 26
用摩斯密码表示标点符号:
目前最常用的就是这些摩斯密码表示,其余的可以暂时忽略
最容易讲的栅栏密码:
2 / 26
手机键盘加密方式,是每个数字键上有3-4个字母,用两位数字来表示字母,例如:
ru用手机键盘表示就是:7382,
那么这里就可以知道了,手机键盘加密方式不可能用1开头,第二位数字不可能超过
4,解密的时候参考此
关于手机键盘加密还有另一种方式,就是拼音的方式,具体参照手机键盘来打,例如:
“数字”表示出来就是:748 94。在手机键盘上面按下这几个数,就会出现:“数字”的
拼音
手机键盘加密补充说明:利用重复的数字代表字母也是可以的,例如a可以用21代表,
也可以用2代表,如果是数字9键上面的第四个字母Z也可以用9999来代表,就是94,
3 / 26
这里也说明,重复的数字最小为1位,最大为4位。
电脑键盘棋盘加密,利用了电脑的棋盘方阵,但是个人不喜这种加密方式,因需要一
个一个对照加密
当铺密码比较简单,用来表示只是数字的密码,利用汉字来表示数字:
电脑键盘坐标加密,如图,只是利用键盘上面的字母行和数字行来加密,下面有注释:
例:bye用电脑键盘XY表示就是:351613
4 / 26
电脑键盘中也可参照手机键盘的补充加密法:Q用1代替,X可以用222来代替,详
情见6楼手机键盘补充加密法。
ADFGX加密法,这种加密法事实上也是坐标加密法,只是是用字母来表示的坐标:
例如:bye用此加密法表示就是:aa xx xf
值得注意的是:其中I与J是同一坐标都是gd,类似于下面一层楼的方法:
5 / 26
这种加密方法和上面的加密方法是相同的,但是是用数字来表示坐标的,其中IJ是在
同一坐标上,与上层楼中的一样,就不举例了:
6 / 26
字母表顺序加密法,反字母表加密法和小键盘加密法:
前两种不解释了,图中有,第三种就是小键盘原本的顺序是789456123,加密后就是
123456789,也就是说7=1,8=2,以此类推,比较简单
7 / 26
说来说去差点把他忘掉了,电脑键盘QWE加密法,就是用字母表替换键盘上面的排
列顺序:
凯撒密码加密就是把原字母按照字母表顺序向后移1-26位,例如:ABCDEF集体向
后移三位结果就是defghi,移位规律表如下,再例如:byebye后移5位就是gdjgdj
8 / 26
维吉尼亚密码,我认为维吉尼亚尼玛世界上是凯撒密码的另一种说法,因为其表示出
来的结果是一样的,维吉尼亚密码的意思是:原字母用随意一位字母(密钥)表示开头,
向后顺延,例如:ABCDEF,用D作为密钥,那么结果是:defghi,和凯撒的向后移3位
的结果是一样的,再例如:byebye用F作为密钥,结果是:gdjgdj,那么就和上面的凯
撒密码是相同的,只是表达方式不一样,图表见下:
9 / 26
不过有一点不同的是,维尼吉亚密码用来加密的密钥可以是一个字母,也可以是一个
单词,如果是一个单词的话,那么加密顺序就按照这个单词的每个字母来作为密钥加密,
然后依次循环即可
培根密码,见下图,就是用字母AB来表示26个英文字母的二进制表示法,使用起来
极为麻烦,但是如果使用的好,将完全看不出加密,也是不错的一种加密方式:
10 / 26
倒叙加密:
这个估计大家都能明白什么意思,就是:ABCDE 加密后就变为 EDCBA,这里需要注
意的是,倒叙加密方式除了全部倒叙外,还有单词倒叙,也就是说:ni hao 加密后可变为
in oah 也可变为oah in,这点解密时需要注意。
接下来说一下进制加密法,我个人学历水平不高,仅仅是知道此加密法,很少用及,
在此略微说一下:
二进制的1101转化成十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
转化成十进制要从右到左用二进制的每个数去乘以2的相应次方
不过次方要从0开始
11 / 26
相反 用十进制的数除以2 每除一下将余数就记在旁边
最后按余数从下向上排列就可得到1101
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
12 / 26
2/2 = 1 余0
1/2 = 0 余1
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
13 / 26
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然
后按十进制加法规则求和。这种做法称为\"按权相加\"法。
二进制转十进制
本人有个更直接的方法,例如二进制数1000110转成十进制数可以看作这样:
数字中共有三个1 即第二位一个,第三位一个,第七位一个,然后十进制数即2的
2-1次方+2的3-1次方+2的7-1次方即2+4+64=70 次方数即1的位数减一。如此计
算只需要牢记2的前十次方即可在此本人为大家陈述一下:2的0次方是1
2的1次方是2
2的2次方是4
14 / 26
2的3次方是8
2的4次方是16
2的5次方是32
2的6次方是64
2的7次方是128
2的8次方是256
2的9次方是512
2的10次方是1024
2的11次方是2048
2的12次方是4096
2的13次方是8192
2的14次方是16384
2的15次方是32768
/ 26 15
2的16次方是65536
在这里仅为您提供前16次方,若需要更多请自己查
十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的
整数部分和小数部分分别转换后,再加以合并。
· 十进制转二进制
110011
· 1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用\"除2取余,逆序排列\"法。具体做法是:用2去除
十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,
直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为
二进制数的高位有效位,依次排列起来。十进制整数转二进制
如:255=(11111111)B
255/2=127=====余1
127/2=63======余1
16 / 26
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
789=1100010101
789/2=394.5 =1 第10位
394/2=197 =0 第9位
197/2=98.5 =1 第8位
98/2=49 =0 第7位
49/2=24.5 =1 第6位
24/2=12 =0 第5位
/ 26 17
12/2=6 =0 第4位
6/2=3 =0 第3位
3/2=1.5 =1 第2位
1/2=0.5 =1 第1位
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用\"乘2取整,顺序排列\"法。具体做法是:用2乘十
进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,
再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0
或1为二进制的最后一位。或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,
后取的整数作为低位有效位。十进制小数转二进制
如:0.625=(0.101)B
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
18 / 26
再如:0.7=(0.1 )B
0.7*2=1.4========取出整数部分1
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
八进制转换十进制
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
19 / 26
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8
的2次方……
所以,设有一个八进制数:1507,转换为十进制为:839,具体方法如下:
可以用横式直接计算:
7 * 8^0 + 0 * 8^1 + 5 * 8^2+ 1 * 8^3 = 839也可以用竖式表示
第0位 7 * 8^0 = 7
第1位 0 * 8^1 = 0
第2位 5 * 8^2 = 320
第3位 1 * 8^3 = 512 十六进制转换十进制
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,
F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位
的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等
于 15,即:F)表示的大小为 X * 16的N次方。、
20 / 26
假设有一个十六进数 2AF5
直接计算就是:
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997
也可以用竖式表示:
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2 = 2560
第3位: 2 * 16^3 = 8192
-------------------------------------
10997
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?
你尽可以给他这么一个算式:
21 / 26
1234 = 1 * 10^3 + 2 * 10^2+ 3 * 10^1 + 4 * 10^0
十六进制互相转换
首先我们来看一个二进制数:1111,它是多少呢?
你可能还要这样计算:1* 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 *
4 + 1 * 8 = 15。
然而,由于1111才4位,所以我们必须直接记住它每一位的权值,并且是从高位往
低位记,:8、4、2、1。即,最高位的权值为2^3 = 8,然后依次是 2^2 = 4,2^1=2,
2^0 = 1。
记住8421,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。
下面列出四位二进制数 xxxx 所有可能的值(中间略过部分)
仅4位的2进制数 快速计算方法 十进制值 十六进值
1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
22 / 26
1011 = 8 + 0 + 2 + 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 =9 9
....
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0
二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
如(上行为二制数,下面为对应的十六进制):
1111 1101 , 1010 0101, 1001 1011
F D , A 5 , 9 B
反过来,当我们看到 FD时,如何迅速将它转换为二进制数呢?
先转换F:
看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421
凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
23 / 26
接着转换D
看到D,知道它是13,13如何用8421凑呢?应该是:8+ 4 + 1,即:1101。
所以,FD转换为二进制数,为:1111 1101
由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制
数时,也可以先转换成16进制,然后再转换成2进制。
比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要
计算较多次数。所以我们可以先除以16,得到16进制数:
被除数 计算过程 商 余数
1234 1234/16 77 2
7777/16 4 13 (D)
4 4/16 0 4
结果16进制为:0x4D2
然后我们可直接写出0x4D2的二进制形式:0100 1101 0010。
其中对映关系为:
24 / 26
0100 -- 4
1101 -- D
0010 -- 2
同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方
法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
下面举例一个int类型的二进制数:
01101101 11100101 10101111 00011011
我们按四位一组转换为16进制:6D E5 AF 1B
采余数定理分解,例如将487710转成十六进制: 487710÷15(E)
30481÷1
1905÷1
119÷7
7÷7
这样就计到487710=7711E
25 / 26
不喜欢进制加密方法的可以自行跳过,例如我本人就不怎么喜欢进制加密法,所以自
动忽略无视。
单表替换加密法。也是用字母表示加密后的字母,详情见下图,类似反字母表顺序加
密法,不过这种加密法用到的人比较少,例如:nihao加密后就是:cq ild
以上便是各种还比较常见的加密方法,另外还有base64、五笔加密、MD5加密、ASC
码转换加密等各种加密方法,因我不是特别了解,所以暂时就不发布了,对于MD5加密
法我颇有微词,这是一种不可逆解的加密法,也就是说除了加密人别人基本解不出来,就
算解出来也不是原来的意思,确实不知道为什么会有此种加密法,可能我见识浅薄....
所有的都已经发出来,此处完结。有不懂的欢迎楼下询问或加我本人QQ号码交流。
以上,谢谢!
注:资料可能无法思考和涵盖全面,最好仔细浏览后下载使用,感谢您的关注!
26 / 26
更多推荐
加密,整数,二进制,表示,键盘,字母,密码
发布评论