今天學了凱撒密碼(單表密碼),寫個明密文對偶表來看看

 

#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();

}

下面實驗截圖:

每天進步一點點~~

 

截圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章