它是一种代换密码。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。
恺撒密码最简单的那种就是将各个字母做一个简单的移位,复杂一些的恺撒密码2的话,就是对26个字母不是顺序的位移,而是不同的字母有不同的位移。这样的话,你就需要一个26个字母的密钥来给26个字母做加密和解密。
凯撒移位密码。
也就是一种最简单的错位法,将字母表前移或者后错几位
,例如:
明码表:ABCDEFGHIJKLMNOPQRSTUVWXYZ。
密码表:DEFGHIJKLMNOPQRSTUVWXYZABC。
这就形成了一个简单的密码表,如果我想写frzy(即明文),那么对照上面密码表编成密码也就是iucb(即密文)了。密码表可以自己选择移几位,移动的位数也就是密钥。
进制转换密码。比如给你一堆数字,乍一看头晕晕的,你可以观察数字的规律,将其转换为10进制数字,然后按照每个数字在字母表中的排列顺序,拼出正确字母。
#includestdio.h
int main()
{
int n;
char a,b;
printf("Enter shift amount(1-25):");
scanf_s("%d",n);
getchar();
printf("Enter message to be encrypted:");
while((a=getchar())!='\n')
{
if(a='A' a='Z')
b='A'+(a-'A'+n)%26;
else if(a='a' a='z')
b='a'+(a-'a'+n)%26;
putchar(b);
}
return 0;
}