✅ 操作成功!

置换密码

发布时间:2023-06-09 作者:admin 来源:文学

置换密码

置换密码

-

2023年2月27日发(作者:星星诗刊)

替换:

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

}

👁️ 阅读量:0