凯撒密码

Hello world,hello blog!

Posted by 吴柚 on March 13, 2019

凯撒密码

凯撒密吗用于英文文本时,将明文报文中的每个字母用字母表中该字母后第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 

多玛代替密码

这种技术是对单码代替密码的改进,使用多个单码代替密码,一个单码代替密码用于加密某明文报文中一个特定位置的一个字母。

  1. 如使用两个凯撒密码(凯撒密码是特殊的单码代替密码),分别设为C1,C2。 加密时采用以C1,C2,C2,C1,C2的次序循环的模式.

  2. 即明文的第一个字母用C1加密,第二和第三个字母用C2编码,第四个字母使用C1,第五个字母使用C2,依此循环。