标题:这是列换位法加密解密过程,怎么出个错误啊。怎么改,求加密解密代码
取消只看楼主
a18753216575
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-17
结帖率:0
已结贴  问题点数:20 回复次数:0 
这是列换位法加密解密过程,怎么出个错误啊。怎么改,求加密解密代码
#include<stdio.h>
 #include<string.h>
 #include<time.h>
 #define CODELEN 256  /*密文长度.*/
 char *encode(char *dest,char *str,int key)
{  int i,j,len,len2,n=0; len=strlen(str);  
if((len % key)!=0) len2=len+ key-(len % key);
 else len2=len; srand(time(NULL));
for(i=len;i<len2;i++)
str[i]=(char)((rand() % 26) + (rand() % 1)*('A'-'a')+'a');
str[len2]=0;
 for(j=0;j<key;j++)
 for(i=0;i<len2/key;i++) dest[n++]=str[i*key+j];
dest[n]=0; str[len]=0; return dest; }  
char *decode(char *dest,char *str,int key)
 { int i,j,len,n=0;
 len=strlen(str);
if((len % key)!=0)
 return NULL;
 len=len / key;
for(i=0;i<len;i++)
 for(j=0;j<key;j++)
 {   dest[n++]=str[j*len+i];  //printf("%c",dest[n-1]); }
 dest[n]=0;  return dest; }
 int main()
 { int key,i,j,len; char str[CODELEN]; char xstr[CODELEN];
scanf("%s",str);
scanf("%d",&key);//输入密钥
 printf("原始明文:%s\n",str);
printf("加密密文:");
 encode(xstr,str,key); printf("%s\n",xstr);  
 if(decode(str,xstr,key)!=NULL)
 {printf("%s\n",str);}
 else {printf("NULL");}
 }
搜索更多相关主题的帖子: return encode 加密 include 
2012-12-17 23:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391730-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.744703 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved