它是一种代换密码。据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为凯撒密码。
#include stdio.h
int main(){
char a[80] ;
int s , n , i ;
printf("Enter message to be encrypted: \n");
for(i=0;;i++){
a[i]=getchar();
if(a[i]=='\n')break;
}
printf("Enter shift amount(1-25):\n");
scanf("%d",s);
n=i;
for(i=0;i=n;i++){
if((a[i]='a'a[i]='z')||(a[i]='A'a[i]='Z'))
{
if(a[i]='z'-sa[i]='z'||a[i]='Z'-sa[i]='Z')
a[i]=a[i]-26+s;
else a[i]=a[i]+s;
}
}
printf("Encrypted message: ");
for(i=0;i=n;i++)
printf("%c",a[i]);
return 0;
}
密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。
恺撒密码据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。很显然可以把字母表前移或者后错1~25位!如YFS VNFS XMN 密匙向后移动5位 解密得TAN QIAN SHI.进制转换密码:就是将一些按一种进制排列在一起的数据转换成十进制,然后对照字母表找出来!第一步观察数据特点确定进制。第二步转换成十进制并找对应字母。如 24 1 16 17 27观察易得是八进制 转换成十进制位20 1 14 15 23 在字母表上找得 TANOW
(1)将字母A转换为ASCII (65,10100101),字母D(68,10101000),后移N位,加N(比如加3,00000011),10100101+00000011=10101000,(2)对于重复码,可按特定字符(ASCII特定,比如11111111)处理,表示同前一个字符。第二个重复字母,则用11111110标示,依此类推。当然这个重复数是有限的,为了扩展编码,可采用4位数。