古典密码学(替换置换加密)C程序.docVIP

  • 10
  • 0
  • 约3.92千字
  • 约 12页
  • 2018-04-22 发布于江西
  • 举报
古典密码学(替换置换加密)C程序.doc

替换: #include stdio.h int encrypt( ) { char STR[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}; char str[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}; int x,i=0; char code[80],string[80]; printf(请输入你的明文(80字符内的小写字符串):); scanf(%s,string); printf(The code is:); for(i=0;string[i];i++) { x=string[i]-97; code[i]=STR[x]; printf(%c,STR[x]); } printf(\n); return 0; } int decrypt( ) { char STR[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}; char str[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}; int x,i=0; char decode[80],STRING[80]; printf(请输入你的密文(80字符内的大写字符串):); scanf(%s,STRING); printf(The decode is:); for(i=0;STRING[i];i++) { x=STRING[i]-65; decode[i]=str[x]; printf(%c,str[x]); } printf(\n); return 0; } int main() { char STR[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}; char str[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}; int t,x,y=0,i=0; char code[80],string[80]; char decode[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++; else y=y; } if(y==i-1) printf(CRYPT_OK!\n); else printf(CRYPT_ERROR!\n); } else if(t==0) { decrypt(); for(i=0;decode[i];i++) { x=decode[i]-65; code[i]=STR[x]; if(code[i]==STRING[i]) y++; else y=y; } if(y==i-125) printf(CRYPT_OK!\n); else printf(CRYPT_ERROR!\n); } else printf(ERROR!\n); return 0; } 置换: #includestdio.h #includestring.h #includestdlib.h char *encrypt(char *str,int n) { int i,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(Memory error!\n); exit(l); } if((c=(char *)malloc(l*sizeof(char)+1))==NULL) { printf(Memory error!\n); exit(l); } c1=c; s

文档评论(0)

1亿VIP精品文档

相关文档