当前位置:首页 » 编程语言 » c语言凯撒加密解密

c语言凯撒加密解密

发布时间: 2022-11-01 22:43:02

㈠ 关于凯撒密码的问题C++(要答案)

摘要 #include

㈡ 如何用C语言实现加强版的凯撒密码破解!

供参考 译码只需要一句即可

感兴趣自己分析下

#include<stdio.h>
intmain()
{
chars[100];
intk;
inti;
while(~scanf("%s%d",s,&k))
{
k%=26;
for(i=0;s[i];i++)
s[i]=(s[i]-'A'+26-(k+i+1)%26)%26+'A';
printf("%s ",s);
}
return0;
}

㈢ 请问一下这道C语言编程题怎么做

按照题目要求编写的用凯撒密码加密的C语言程序如下

#include<stdio.h>

int main(){

char s[80];

int offset,i;

fgets(s,80,stdin);

scanf("%d",&offset);

for(i=0;s[i]!='';i++){

if('A'<=s[i] && s[i]<='Z')

if(offset>=0)

s[i]='A'+(s[i]-'A'+offset)%26;

else

s[i]='A'+(s[i]-'A'+26+offset%26)%26;

else if('a'<=s[i] && s[i]<='z')

if(offset>=0)

s[i]='a'+(s[i]-'a'+offset)%26;

else

s[i]='a'+(s[i]-'a'+26+offset%26)%26;

}

printf("%s ", s);

return 0;

}

㈣ C++编程 凯撒加密

#include<iostream>
#include<string>
usingnamespacestd;
voidencrypt(string&s)//加密
{

inti=s.length();
for(intj=0;j<i;++j)
{
if('A'<=s[j]&&s[j]<='Z')
{
if('A'<=s[j]&&s[j]<='W')
s[j]+=3;
else
s[j]-=23;
//cout<<s[j];
s[j]+=32;
//cout<<s[j]<<endl;
}
elseif('a'<=s[j]&&s[j]<='z')
{
if('a'<=s[j]&&s[j]<='w')
s[j]+=3;
else
s[j]-=23;
//cout<<s[j];
s[j]-=32;
//cout<<s[j]<<endl;

}

}
}

intmain()//测试
{
stringxy;
cout<<"输入字符串"<<endl;
cin>>xy;
encrypt(xy);
cout<<xy<<endl;
return0;

}

听说回答的够长才能够自动采纳

㈤ C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文

#include<iostream>
#include<string>

usingnamespacestd;

intmain()
{
stringcode;//储存初始字符串
stringd_code;//加密后的字符串
inti;
intn;//移位的个数
cout<<"Enterthestring"<<endl;
cin>>code;
cout<<"howmanystepdoyouwanttomove?"<<endl;
cin>>n;
for(i=0;i<code.size();++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;
}
elseif(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<code.size();++i)
{
cout<<d_code[i];
}
cout<<endl;
cout<<"Code="<<code<<endl;
return0;
}

㈥ 用C语言实现任意字符串的加密,其中,字母用凯撒加密方法加密,非字母不变

我尽量用注释阐述了思路,希望可以帮到你!!

#include<stdio.h>
#include<string.h>
#define N 80 //可加密字符串最大长度

char plaintext[N]={0}; //明文,输入时输入字符,参与运算时强制转换成整数
int ciphertext[N]={0}; //密文,保存成整数,输出时强制转换成字符
int k; //后(右)移位数,相当于密钥

void getPlainText() //获得明文字符串
{
printf("请输入明文:");
scanf("%s",plaintext);
printf("\n");
}

void getLength() //获取后(右)移位数(密钥)
{
printf("请输入后移的位数:");
scanf("%d",&k);
k%=26; //因为字母只有26个,所以超过26相当于重复
}

void Caesar_cipher() //凯撒加密,本程序采用的是字母循环后(右)移
{
unsigned int i;

for(i=0;i<strlen(plaintext);i++)
{
//两个bool类型的变量是为了判断字符是否是字母(包括大写和小写)
bool flag1=plaintext[i]>='a'&&plaintext[i]<='z';
bool flag2=plaintext[i]>='A'&&plaintext[i]<='Z';

if(flag1||flag2){ //如果是字母,加密
ciphertext[i]=(int)plaintext[i]+k; //字母在字母表中后(右)移K位
if(ciphertext[i]>(int)'z'){ //保证是循环后(右)移
ciphertext[i]-=26;
}
}
else //非字母字符,不做处理,原样保存
ciphertext[i]=(int)plaintext[i];

}

}

void printCipherText() //输出加密后的密文
{
unsigned int i;
printf("\n加密后的密文是:");
for(i=0;i<strlen(plaintext);i++) //把参与计算后是整数强制转换成对应的字符
printf("%c",(char)ciphertext[i]);
printf("\n");

}

void main()
{
getPlainText(); //明文
getLength(); //后(右)移位数
Caesar_cipher(); //凯撒加密
printCipherText(); //密文

}

㈦ 凯撒密码 C语言

#include<stdio.h>
#include<string.h>
void main ()
{
char str[100];
char str1[100];
printf("输入字符串:");
scanf("%s",&str);
int len;
len=strlen(str);
for(int i=0;i<len;i++)
{
str1[i]=(str[i]-97+3)%26+97;
}
str1[len]='\0';
printf ("密文为:%s\n",str1);
}

热点内容
我的世界网易版服务器空岛制作 发布:2025-01-10 05:11:35 浏览:845
微信怎么设置微信密码忘了怎么办啊 发布:2025-01-10 05:09:17 浏览:571
净网密码是什么 发布:2025-01-10 05:04:31 浏览:821
C语言醉酒 发布:2025-01-10 05:02:07 浏览:759
淘宝上传宝贝品牌怎么填写 发布:2025-01-10 04:27:26 浏览:552
在计算机的存储单元中存储的 发布:2025-01-10 04:26:37 浏览:733
压缩表qb 发布:2025-01-10 04:24:55 浏览:1000
linuxhttpd访问 发布:2025-01-10 04:17:57 浏览:405
java实时监控 发布:2025-01-10 04:11:46 浏览:363
c语言程序试题 发布:2025-01-10 04:05:17 浏览:793