凯撒密码
凯撒密吗用于英文文本时,将明文报文中的每个字母用字母表中该字母后第k个字母进行替换
例如,如果K=3,则明文中的字母“a”变成密文中的字母“d”;明文中的字母“b”变成密文中的字母“e”,依此类推。
用C++实现k=4的凯撒密码
#include<iostream>
using namespace std;
int main()
{
char c;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c+=4;
if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;
}
cout<<c;
}
cout<<endl;
return 0;
}
单码代替密码
同凯撒密码一样,也是使用字母表中的一个字母替换该字母表中的另一个字母。
与凯撒密码的不同之处是,并非按照规则的模式进行替换,每一个字母都有一个唯一的替换字母。
明文字母: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
密文字母:m n b v c x z a s d f g h j k l p o i u y t r e w q
多玛代替密码
这种技术是对单码代替密码的改进,使用多个单码代替密码,一个单码代替密码用于加密某明文报文中一个特定位置的一个字母。
-
如使用两个凯撒密码(凯撒密码是特殊的单码代替密码),分别设为C1,C2。 加密时采用以C1,C2,C2,C1,C2的次序循环的模式.
-
即明文的第一个字母用C1加密,第二和第三个字母用C2编码,第四个字母使用C1,第五个字母使用C2,依此循环。