#include "stdio.h"
//加密
char jiami1(char m,int k)
{
m='a'+(m-'a'+k)%26;
return(m);
}
char jiami2(char m,int k)
{
m='A'+(m-'A'+k)%26;
return(m);
}
//解密
char jiemi1(char m,int k)
{
m='a'+(m-'a'+(26-k))%26;
return(m);
}
char jiemi2(char m,int k)
{
m='A'+(m-'A'+(26-k))%26;
return(m);
}
main()
{
char m[10];
int x,k,i;
do
{
printf(" 凯撒密码\n");
printf("1.为字符串加密\n");
printf("2.为字符串解密\n");
printf("0.退出\n");
scanf("%d",&x);
if(x<0||x>2)
{
do{
printf("\n输入有误,请重新输入0-2之间的数");
scanf("%d",&x);
}while(x<0||x>2);
}
switch(x)
{
case 1:
printf("请输入明文:");
for(i=0;m[i]!='\0';i++)
scanf("%s",&m[i]);
printf("请输入密钥:");
scanf("%d",&k);
if(k!=3)
printf("密钥错误\n");
else
for(i=0;m[i]!='\0';i++)
{
if(m[i]>='a'&&m[i]<='z')
m[i]=jiami1(m[i],k);
else
{
if(m[i]>='A'&&m[i]<='Z')
m[i]=jiami2(m[i],k);
}
}
printf("密文为");
for(i=0;m[i]!='\0';i++)
printf("%s",m[i]);break;
case 2:
printf("请输入密文:");
for(i=0;m[i]!='\0';i++)
scanf("%s",&m[i]);
printf("请输入密钥:");
scanf("%d",&k);
if(k!=3)
printf("密钥错误\n");
else
for(i=0;m[i]!='\0';i++)
{
if(m[i]>='a'&&m[i]<='z')
m[i]=jiemi1(m[i],k);
else
{
if(m[i]>='A'&&m[i]<='Z')
m[i]=jiemi2(m[i],k);
}
}
printf("明文为%s:",m[i]);
for(i=0;m[i]!='\0';i++)
printf("%s",m[i]);break;
default: printf("谢谢您的使用,再见!");
}
}while(x>0);
}
kaisajiami.rar_密码加密算法
版权申诉
166 浏览量
2022-09-24
14:12:31
上传
评论
收藏 2KB RAR 举报
小波思基
- 粉丝: 72
- 资源: 1万+
最新资源
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
- 毕业设计参考 - 基于树莓派、OpenCV及Python的人脸识别
- node-v18.20.2-linux-arm64
- 222222222222
- 16张相机标定图片,可复现本文畸变矫正
- dbeaver-ce-23.3.1-x86_64-setup.zip
- 基于X86 AVX2指令的快速卷积实现
- VMware-ESXi-7.0U3n-21930508-depot.zip文件
- MySQL 在 Windows 系统下的安装教程.zip
- Access文件数据库访问的客户端
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈