不影响。
1、凯撒密码最早的使用可以追溯到古罗马。
2、《高卢战记》描述凯撒用密码传递信息,所谓“凯撒密码。
3、是一种替代密码,通过顺序推送后三个字母来起到加密的作用,比如用字母D代替字母A,用字母e代替字母B。
简单的说,就是位移加密。
比如你的密码是ABCDE
然后设置凯撒密码的偏移量为3的话
那加密之后的密码就是DEFGH
在密码学中,恺撒密码(或称恺撒加密、恺撒变换、变换加密)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
恺撒密码的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。此时偏移量为n的加密方法即为: E(x) = (x + n) mod 26.
解密就是:
D(x) = (x - n) mod 26.
显而易见,一旦确定了某两个字母的对应关系(即n的值),这种移位密码很容易被破解。
因此,为了使密码有更高的安全性,单字母替换密码就出现了。
明码表:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密码表:T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
但是这种加密方式依然可以破解,根据字母使用频度表,分析密文中的字母频率,将其对照即可破解。
不仅如此,凯撒加密对加密数据也是有要求的,一般情况下,它只支持对基本的英文字母进行加密,如果对中文等亚太地区的文字进行加密,结果可想而知,你的隐私将毫无保留的出现在众人面前。有人说,我们可以扩展这个算法,使它支持所有的文字,这么做是可行的,如果采用同余式的方式实现,代码几乎不怎么需要改动,只要字符集本身是Unicode就可以了。但是这种加密的安全性很难满足应用的要求。如果采用单字母替换的方式,程序将需要构建两个巨大的字符数组去保存他们的映射关系,而且扩展性也不好,当然也是不可行的。这样看来,凯撒加密岂不是一无是处了,其实对于一般的应用,凯撒加密还是足以应付的,只要我们对它稍作改进。
凯撒密码是罗马扩张时期朱利斯• 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动 2 位,则 字母 A 将变为 C,字母 B 将变为 D,…,字母 X 变成 Z,字母 Y 则变为 A,字母 Z 变为 B。
因此,假如有个明文字符串“Hello”用这种方法加密的话,将变为密文: “Jgnnq” 。而如果要解密,则只要将字母向相反方向移动同样位数即可。如密文“Jgnnq”每个字母左移两位 变为“Hello” 。这里,移动的位数“2”是加密和解密所用的密钥。
该程序既可用于加密又可用于解密。只要传入明文和偏移量即可加密,解密需要传入密文和负的偏移量就可以解密。
输出的结果:
凯撒密码由于加解密比较简单,密钥总共只有 26 个,攻击者得到密文后即使不知道密钥,也可一个一个地试过去,最多试 26 次就可以得到明文。
这里不光根据 offset 偏移进行加密,还加上了字符所在的下标进行混合加密。
输出的结果: