凯撒密码

  • 加密即把a-z或A-Z的字母向后移动n个字符实现加密,若n=3的话,a对应d,z对应c,如此循环;
  • 解密刚好和加密相反,加密向后移动的话解密就向前移动。
    加密的C代码如下:
#include <stdio.h>
void encode(char str[],int n)
{//使用两个数组分别存放大小写字符char min[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};char max[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};int i,k,m; for(i=0;str[i]!='\0';i++)//判空条件也可以使用strlen(str)来获取str长度实现 {if('a'<=str[i] && str[i]<='z'){k=str[i]-'a';//使用k来获得当前字符对于字符a的偏离程度。若当前字符为a,则k=0,刚好符合字符数组min的下标m=(26+k+n)%26;//使用m来保存移动后的字符,对26取余数保证m始终位于0至25之间。若n为复数的话k+n可能小于0,因此在前面加上26保证其为正数。str[i]=min[m];}   else if('A'<=str[i] && str[i]<='Z'){k=str[i]-'A';m=(26+k+n)%26;str[i]=max[m];}       }
}int main()
{char a[10],ch;int n;printf("输入n值:");scanf("%d",&n);ch=getchar();printf("\n输入原始字符串:");gets(a);encode(a,n);printf("\n转换后:");puts(a);return 0;
}

解密的C代码如下:

#include <stdio.h>
void decode(char str[],int n)
{//使用两个数组分别存放大小写字符char min[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};char max[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};int i,k,m; for(i=0;str[i]!='\0';i++)//判空条件也可以使用strlen(str)来获取str长度实现 {if('a'<=str[i] && str[i]<='z'){k=str[i]-'a';//使用k来获得当前字符对于字符a的偏离程度。若当前字符为a,则k=0,刚好符合字符数组min的下标m=(26+k-n)%26;//使用m来保存移动后的字符,由于k-n可能为负数因此在前面加上26保证其为正数。str[i]=min[m];}  else if('A'<=str[i] && str[i]<='Z'){k=str[i]-'A';m=(26+k-n)%26;str[i]=max[m];}        }
}
int main()
{char a[10],ch;int n;printf("输入n值:");scanf("%d",&n);ch=getchar();printf("\n输入原始字符串:");gets(a);decode(a,n);printf("\n转换后:");puts(a);return 0;
}

C语言实现凯撒密码加解密相关推荐

  1. python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...

    #-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...

  2. 凯撒密码加解密及破解实现原理

    概念及原理 根据百度百科上的解释,凯撒密码是一种古老的加密算法. 密码的使用最早可以追溯到古罗马时期,<高卢战记>有描述恺撒曾经使用密码来传递信息,即所谓的"恺撒密码" ...

  3. 凯撒密码加密解密C语言详细代码

    凯撒密码加密解密C语言详细代码 凯撒密码 又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数: E(m)=(m+k) mod ...

  4. 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)

    凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...

  5. 凯撒密码加密解密——Java代码(密码学)

    凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...

  6. 凯撒密码c++语言程序,凯撒密码(加密与解密)

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. /******************************************** ...

  7. Python编程:实现凯撒密码加密解密

    凯撒密码 原理: 通过把字母移动一定的位数来实现加解密 明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文. 例如: 当步长为3时,A被替换成D,B被替换成E,依此类推,X替 ...

  8. Matlab凯撒密码加密解密

    Pratice problem: Bob wants to send the message "Start sending messages at 8:30" to Alice i ...

  9. C++凯撒密码加密解密算法

    一.算法描述 凯撒密码的加密解密算法,逻辑很简单,就是两个公式: 比如说下面这个例子的加密解密公式,就是位移量为3时的结果 加密公式 f(a)=(a+3) mod 26 解密公式 f(a)=(a+23 ...

最新文章

  1. SQL与NoSQL区别-读写性能
  2. pythonvbb转换txt_Caltech行人数据集转化VOC数据集
  3. TComboBox下拉取值
  4. WebBrowser控件打开https站点
  5. linux笔记之 vi编辑器和用户的配置文件及提权
  6. hbase动态更改行键设计_Hadoop HBase概念学习系列之优秀行键设计(十六)
  7. 迎春舞会之数字舞蹈(洛谷-P1538)
  8. windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法
  9. MySQL两个字段都建立索引 使用情况
  10. php去掉 x5E,清除wordpress里PHP文件恶意代码
  11. 移动互联网“去哪儿”?
  12. python 散点图点击链接图片_Python数据可视化——散点图
  13. Qi v1.2.4协议 之 定频调压方案
  14. Centos系统修改远程端口
  15. python:实现newton_raphson牛顿拉夫森算法(附完整源码)
  16. java毕业设计招聘管理系统Mybatis+系统+数据库+调试部署
  17. qt5把qt_zh_CN.qm加载了,但QTextEdit的右键菜单仍然是英文,而QLineEdit的倒是中文。怎样设置使得QTextEdit的右键菜单是中文
  18. 我设计开发的第一个产品发布了,微信小程序“集美装修效果图“
  19. 昨天睡眠质量记录70分
  20. 这11家世界顶级AI初创公司,每个单拎出来都是行业第一

热门文章

  1. 聊一聊升级Zen4架构的机革新机
  2. 用注册表保存数据——DOS应用简介
  3. Flutter 基础组件之 Text
  4. 大数定律、中心极限定理
  5. 数据科学家访谈系列:子豹(淘宝)、授武(聚划算)
  6. python爬虫之抓取代理服务器IP
  7. 6.5 万维网www与HTTP协议
  8. 虎翼网关于论坛整改的通知
  9. 关于postman的断言的解释
  10. httpunit爬虫