您的位置:首页 > 其它

今天学了凯撒密码(单表密码),写个明密文对偶表来看看

2009-09-07 15:32 561 查看
#include<stdio.h>

void main()

{

char a[26]={'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'},b[26];

int i,j,k;

clrscr();

printf("Please input the No. you want to move(0<=j<=25):/t");

scanf("%d",&j);

for(i=0;i<=25;i++)

{

k=(i+j)%26;

b[i]=a[k];

}

for(i=0;i<=25;i++)

{

printf("%c ",a[i]);

}

printf("/n");

for(i=0;i<=25;i++)

{

printf("%c ",b[i]);

}

getch();

}

原理其实很简单,就是字母表中各个元素移位,就这些。

顺便写上加密的代码,还不能对句子进行加密,只能单词,但是支持大小写,同样的大写加密规律同小写的是一样的,同样移位。

#include<stdio.h>

#include<ctype.h>

void main()

{

char a[26]={'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'},b[26],*c,d[26];

int i,j,k;

clrscr();

printf("Please input the No. you want to move(0<=j<=25):/t");

scanf("%d",&j);

for(i=0;i<=25;i++)

{

k=(i+j)%26;

b[i]=a[k];

}

for(i=0;i<=26;i++)

{

d[i]=b[i]-32;

}

for(i=0;i<=25;i++)

{

printf("%c ",a[i]);

}

printf("/n");

for(i=0;i<=25;i++)

{

printf("%c ",b[i]);

}

printf("/nPlease input the String you want to Encrypt:/t");

scanf("%s",c);

for(;*c!='/0';c++)

{

if(isalpha(*c)){

if(islower(*c))

*c=b[*c-97];

else *c=d[*c-65];

}

}

printf("The Encrypted Sting is:/t%s");

getch();

}

下面实验截图:

每天进步一点点~~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: