用c语言编写置换算法 一种有密钥,一种无密钥。在线坐等高手 不要太难的 希望写详细点 不用改就直接用的
(1)置换密码技术实现程序开发老师是这样写的别的我真的再不懂了明文是proceedmeetingasagreed无密钥proceedmeetiasagreed加密后是pe...
(1) 置换密码技术实现程序开发 老师是这样写的 别的我真的再不懂了
明文是proceed meeting as agreed
无密钥proc
eedm
eeti
asag
reed 加密后是peeareesseodtaecmtgd
有密钥是 proc eedm eeti ngas agre ed 加密后是rcpoemedeietgsnagearde
用c语言实现这个算法 vb也行 说详细点好吗 展开
明文是proceed meeting as agreed
无密钥proc
eedm
eeti
asag
reed 加密后是peeareesseodtaecmtgd
有密钥是 proc eedm eeti ngas agre ed 加密后是rcpoemedeietgsnagearde
用c语言实现这个算法 vb也行 说详细点好吗 展开
3个回答
展开全部
你的无密钥的例子有问题
你漏掉了里面的ng
#include <stdio.h>
#include <string.h>
#define MAXBUF 1024
int main(int argc, char* argv[])
{
char buf[MAXBUF],bufout[MAXBUF]={0},*p;
int i,j,t;
printf("输入搜此灶一个字符串\n");
gets(buf);
/扒羡/去掉空格
for (p=buf;*p;p++)
while(*p==' ')
strcpy(p,p+1);
//补齐4位所需的空格
t=strlen(buf);
for (p=buf+t,i=0;i<t%4;i++)
*p++='世扮 ';
*p=0;
//无密钥加密
t=strlen(buf)/4;
for (i=0;i<4;++i)
for (j=0;j<t;++j)
bufout[j+t*i]=buf[i+4*j];
printf("无密钥:%s|\n",bufout);
//有密钥加密
for (i=0;i<t;i++)
{
bufout[i*4]=buf[i*4+1];
bufout[i*4+1]=buf[i*4+3];
bufout[i*4+2]=buf[i*4];
bufout[i*4+3]=buf[i*4+2];
}
printf("有密钥:%s|\n",bufout);
return 0;
}
你漏掉了里面的ng
#include <stdio.h>
#include <string.h>
#define MAXBUF 1024
int main(int argc, char* argv[])
{
char buf[MAXBUF],bufout[MAXBUF]={0},*p;
int i,j,t;
printf("输入搜此灶一个字符串\n");
gets(buf);
/扒羡/去掉空格
for (p=buf;*p;p++)
while(*p==' ')
strcpy(p,p+1);
//补齐4位所需的空格
t=strlen(buf);
for (p=buf+t,i=0;i<t%4;i++)
*p++='世扮 ';
*p=0;
//无密钥加密
t=strlen(buf)/4;
for (i=0;i<4;++i)
for (j=0;j<t;++j)
bufout[j+t*i]=buf[i+4*j];
printf("无密钥:%s|\n",bufout);
//有密钥加密
for (i=0;i<t;i++)
{
bufout[i*4]=buf[i*4+1];
bufout[i*4+1]=buf[i*4+3];
bufout[i*4+2]=buf[i*4];
bufout[i*4+3]=buf[i*4+2];
}
printf("有密钥:%s|\n",bufout);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
置换算法
密钥
不太懂
能说的更清楚些吗
密钥
不太懂
能说的更清楚些吗
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Mark一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询