凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。
#include <stdioh>
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 <iostream>
#include <string>
using namespace std;
int main()
{
string code;//储存初始字符串
string d_code;//加密后的字符串
int i;
int n; //移位的个数
cout<<"Enter the string "<<endl;
cin>>code;
cout<<"how many step do you want to move "<<endl;
cin>>n;
for(i=0;i<codesize();++i)
{
if(int(code[i])>97)
{
if(int(code[i])+n>122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
else if(int(code[i])+n>90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;i<codesize();++i)
{
cout<<d_code[i];
}
cout<<endl;
cout<<"Code = "<<code<<endl;
return 0;
}
#include<stdioh>
int main()
{
int n;
char a, b;
printf("Enter shift amount(1-25):");
scanf_s("%d", &n);
getchar();
printf("Enter message to be encrypted:");
while ((a = getchar()) != '\n')
{
if (a >= 'A' && a <= 'Z')
b = 'A' + (a - 'A' + n) % 26;
else if (a >= 'a' && a <= 'z')
b = 'a' + (a - 'a' + n) % 26;
else
b=a;
putchar(b);
}
getchar();
return 0;
}
#include <stdioh>
char s[]="Beijing Technology and Business University (BTBU) is a key state-run university with comprehensive disciplines covering Arts, Sciences, Engineering, Law, Economics, History, Philosophy and Management";
void fun(char s,int n)
{
int i=0;
while(s[i]!=0)
{
if(s[i]<='z'&&s[i]>='a')
{
s[i] += n;
if(s[i]>'z') s[i] -=24;
}
else if(s[i]<='Z'&&s[i]>='A')
{
s[i] += n;
if(s[i]>'Z') s[i] -=24;
}
i++;
}
}
void main()
{
fun(s,3);
puts(s);
}
以上就是关于凯撒密码的算法c语言的怎么实现啊全部的内容,包括:凯撒密码的算法c语言的怎么实现啊、C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文、C语言凯撒加密问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)