古典密码学替换置换加密C程序.docx

上传人:b****2 文档编号:2468013 上传时间:2022-10-29 格式:DOCX 页数:14 大小:121.47KB
下载 相关 举报
古典密码学替换置换加密C程序.docx_第1页
第1页 / 共14页
古典密码学替换置换加密C程序.docx_第2页
第2页 / 共14页
古典密码学替换置换加密C程序.docx_第3页
第3页 / 共14页
古典密码学替换置换加密C程序.docx_第4页
第4页 / 共14页
古典密码学替换置换加密C程序.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

古典密码学替换置换加密C程序.docx

《古典密码学替换置换加密C程序.docx》由会员分享,可在线阅读,更多相关《古典密码学替换置换加密C程序.docx(14页珍藏版)》请在冰豆网上搜索。

古典密码学替换置换加密C程序.docx

古典密码学替换置换加密C程序

替换:

#include

intencrypt()

{

charSTR[27]={'X','N','Y','A','H','P','O','G','Z','Q','W','B','T','S','F','L','R','C','V','M','U','E','K','J','D','I'};

charstr[27]={'d','l','r','y','v','o','h','e','z','x','w','p','t','b','g','f','j','q','n','m','u','s','k','a','c','i'};

intx,i=0;

charcode[80],string[80];

printf("请输入你的明文(80字符内的小写字符串):

");

scanf("%s",string);

printf("Thecodeis:

");

for(i=0;string[i];i++)

{

x=string[i]-97;

code[i]=STR[x];

printf("%c",STR[x]);

}

printf("\n");

return0;

}

intdecrypt()

{

charSTR[27]={'X','N','Y','A','H','P','O','G','Z','Q','W','B','T','S','F','L','R','C','V','M','U','E','K','J','D','I'};

charstr[27]={'d','l','r','y','v','o','h','e','z','x','w','p','t','b','g','f','j','q','n','m','u','s','k','a','c','i'};

intx,i=0;

chardecode[80],STRING[80];

printf("请输入你的密文(80字符内的大写字符串):

");

scanf("%s",STRING);

printf("Thedecodeis:

");

for(i=0;STRING[i];i++)

{

x=STRING[i]-65;

decode[i]=str[x];

printf("%c",str[x]);

}

printf("\n");

return0;

}

intmain()

{

charSTR[27]={'X','N','Y','A','H','P','O','G','Z','Q','W','B','T','S','F','L','R','C','V','M','U','E','K','J','D','I'};

charstr[27]={'d','l','r','y','v','o','h','e','z','x','w','p','t','b','g','f','j','q','n','m','u','s','k','a','c','i'};

intt,x,y=0,i=0;

charcode[80],string[80];

chardecode[80],STRING[80];

printf("加密请输入1,解密请输入0:

");

scanf("%d",&t);

printf("\n");

if(t==1)

{

encrypt();

for(i=0;code[i];i++)

{

x=code[i]-65;

decode[i]=str[x];

if(decode[i]==string[i])

y++;

elsey=y;

}

if(y==i-1)

printf("CRYPT_OK!

\n");

elseprintf("CRYPT_ERROR!

\n");

}

elseif(t==0)

{

decrypt();

for(i=0;decode[i];i++)

{

x=decode[i]-65;

code[i]=STR[x];

if(code[i]==STRING[i])

y++;

elsey=y;

}

if(y==i-125)

printf("CRYPT_OK!

\n");

elseprintf("CRYPT_ERROR!

\n");

}

else

printf("ERROR!

\n");

return0;

}

置换:

#include

#include

#include

char*encrypt(char*str,intn)

{

inti,j,k,l,d;

char*c,*s1,*c1;

l=strlen(str);

if((d=l%n)!

=0)l=l+n-d;

if((s1=(char*)malloc(l*sizeof(char)+1))==NULL)

{

printf("Memoryerror!

\n");

exit(l);

}

if((c=(char*)malloc(l*sizeof(char)+1))==NULL)

{

printf("Memoryerror!

\n");

exit(l);

}

c1=c;

strcpy(s1,str);

for(i=strlen(str);i

s1[i]=32;

s1[l]='\0';

for(k=0;k

{

for(j=0;j

{

*c1=s1[k+j*n];

c1++;

}

}

*c1='\0';

free(s1);

returnc;

}

char*decrypt(char*str,intn)

{

inti,j,k,l,d;

char*c,*s1,*c1;

l=strlen(str);

if((d=l%n)!

=0)l=l+n-d;

n=l/n;

if((s1=(char*)malloc(l*sizeof(char)+1))==NULL)

{

printf("Memoryerror!

\n");

exit(l);

}

if((c=(char*)malloc(l*sizeof(char)+1))==NULL)

{

printf("Memoryerror!

\n");

getch();

exit(l);

}

c1=c;

strcpy(s1,str);

for(i=strlen(str);i

s1[i]=32;

s1[l]='\0';

for(k=0;k

{

for(j=0;j

{

*c1=s1[k+j*n];

c1++;

}

}

while(*(--c1)==32);

c1++;

*c1='\0';

free(s1);

returnc;

}

intmain()

{

intn,t,i=0,y=0;

charstr[80];

char*c,*s;

printf("加密请输入1,解密请输入0:

");

scanf("%d",&t);

if(t==1)

{

printf("请输入明文:

");

scanf("%s",str);

printf("请输入密钥:

n=");

scanf("%d",&n);

c=encrypt(str,n);

printf("加密后的密文c=%s$\n",c);

s=decrypt(c,n);

for(i=0;str[i];i++)

{

if(str[i]==s[i])

y++;

elsey=y;

}

//printf("%d%d",i,y);

if(y==i)

printf("CRYPT_OK!

\n");

elseprintf("CRYPT_ERROR!

\n");

}

elseif(t==0)

{

printf("请输入密文:

");

scanf("%s",str);

printf("请输入密钥:

n=");

scanf("%d",&n);

c=decrypt(str,n);

printf("解密后的明文c=%s$\n",c);

s=encrypt(c,n);

for(i=0;str[i];i++)

{

if(str[i]==s[i])

y++;

elsey=y;

}

if(y==i)

printf("CRYPT_OK!

\n");

elseprintf("CRYPT_ERROR!

\n");

}

elseprintf("ERROR!

");

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1