大家在网站注册的时候,总会遇到如下的情况
1.起一个霸气的名字的时候,系统提示您昵称已经重名,换一个更霸气的名字,发现还是重名,心想算了还是低调一点吧,起了一个低调的名字,比如(无名),发现还是重名了,此时心中必然有一万匹草泥马在奔腾,此时系统幽幽的提示你,算了别折腾了吧,昵称后面或者前面加一个修饰词吧,比如(无名123),真low,说实话上网的时候见到了不少。那么问题来了,我该怎么办
2.注册网站的时候填写密码,随缘填一个发现不符合规则,其实吧,后台开发者也是煞费苦心,要求你需要有大小写,特殊字符,目的也是为了提高安全性。好吧,我理解,那我就设置一个强密码,用在多个账户上吧,不然一个账户一个太难记了(想想网易邮箱被别人撞库的事,这事还是别干了,老老实实一个账户一个密码吧),更有甚者,要不就设定我的生日吧(建议还是不要这么设置太容易被破解了)。那么问题来了,我该怎么设置密码。下面开始介绍密码学的基本思想。
密码学入门
前面的怎么设置注册名和怎么设置密码,无形当中就涉及到了密码学的内容,假设你想使用你的生日20191209作为你的密码,如果你直接使用那么被破解的概率极大,这里可以使用密码破解技术中的统计分析破解法(也就是试密码的时候,会先试一些特殊的密码,比如生日,手机号等,不是从0开始一个一个的试验,这种方法是暴力破解法),实在不行由于你的密码才8位,那么使用暴力破解也是可以破解的,毕竟现代计算机的运算速度不是闹着玩的,排列组合也就分分钟破解的事。前面简单介绍了解密的方法,那么加密的方法有什么,主要是两大思想,替代和置换。
替代加密
替代加密:利用一种东西替代另外一种东西
1.凯撒替代加密法:将每个字母使用其后第K位替换
明文:A B C
凯撒替代加密法 参数K 为 3
A后面第三位是D
B后面第三位是E
C后面第三位是F
所以使用凯撒替代加密法加密明文ABC后可以得到
密文:D E F
2.单字母替代法:可以按照自己的规则将每个字母替换为任意的字母
明文:A B C
加密规则:假设我定义 A 替换为 K B 替换为 M C 替换为 N
密文:K M N
置换加密
置换加密:更改数据的顺序
行置换:基于行变换的置换加密
明文 A B C D E
加密规则:(第一行变换为第二行,第二行变换为第一行,第三行变换为第四行,第四行变换为第三行)
A B
B A
C D
D C
密文:B A D C
列变换:基于列变换的置换加密
明文 A B C D
加密规则:(按照列顺序为2143输出)
密文:B A D C
总结
上文简单的介绍了密码学中很重要的两个思想,替代和置换思想,理解这两个思想有助于你理解后面更复杂的加密算法。那么回到最开始的问题,当你需要设定一个密码的时候,使用替代和置换这两个思想可以为你做什么,试一试吧。下文开始逐步介绍在互联网信息传播过程中常用的一些加密技术。