凯撒密码的算法c语言的怎么实现啊?
2个回答
展开全部
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。
#include <stdio.h>
main()
{
char M[100];
char C[100];
int K=3,i;
printf("请输入明文M(注意不要输入空白串)\n");
gets(M);
for(i=0;M[i]!='\0';i++)
C[i]=(M[i]-'a'+K)%26+'a';
C[i]='\0';
printf("结果是:\n%s\n",C);
}
#include <stdio.h>
main()
{
char M[100];
char C[100];
int K=3,i;
printf("请输入明文M(注意不要输入空白串)\n");
gets(M);
for(i=0;M[i]!='\0';i++)
C[i]=(M[i]-'a'+K)%26+'a';
C[i]='\0';
printf("结果是:\n%s\n",C);
}
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 80
int main(void){
char message[N];
int n,i;
int length;
printf("please enter your message:");
gets(message);
printf("please enter shift amount(1-25):");
scanf("%d",&n);
printf("the message you enter is:");
puts(message);
printf("\n");
length=strlen(message);
for(i=0;i<length;i++){
if(message[i]>='A' && message[i]<='Z'){
message[i]=((message[i]-'A')+n)%26+'A';
}else if(message[i]>='a' && message[i]<='z'){
message[i]=((message[i]-'a')+n)%26+'a';
}else continue;
}
puts("Encryted message:");
puts(message);
printf("\n");
return 0;
}
#include<stdlib.h>
#include<string.h>
#define N 80
int main(void){
char message[N];
int n,i;
int length;
printf("please enter your message:");
gets(message);
printf("please enter shift amount(1-25):");
scanf("%d",&n);
printf("the message you enter is:");
puts(message);
printf("\n");
length=strlen(message);
for(i=0;i<length;i++){
if(message[i]>='A' && message[i]<='Z'){
message[i]=((message[i]-'A')+n)%26+'A';
}else if(message[i]>='a' && message[i]<='z'){
message[i]=((message[i]-'a')+n)%26+'a';
}else continue;
}
puts("Encryted message:");
puts(message);
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询