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

凯撒密码

又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数:
E(m)=(m+k) mod n
其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数.
例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的
密文为L:
E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L

解题思路

把一条消息中的每个字母用字母表中固定距离之后的那个字母代替。(如果超越了字母Z,会绕道字母表的起始位置。例如,如果每个字母都用字母表中两个位置之后的字母代替,那么Y就会被替换为A,Z就会被替换为B。),然后编写程序。

#include <stdio.h>
#include <string.h>int main()
{char passwd[100],encrypted[100];int i,j,k,t,move,tmp;printf("加密选择1,解密选择2:");scanf("%d",&tmp);if(tmp==1){printf("输入原文:");scanf("%s",&passwd);printf("自定义密匙(1-25):");scanf("%d",&move);for(i=0; i<strlen(passwd); i++){if(passwd[i] >= 'A' && passwd[i] <= 'Z'){passwd[i] = ((passwd[i]-'A')+move)%26+'A';}else if(passwd[i] >= 'a' && passwd[i] <= 'z'){passwd[i] = ((passwd[i]-'a')+move)%26+'a';}}printf("加密后的密文");printf("%s\n",passwd);}else{printf("输入密文:");scanf("%s",&passwd);printf("密匙为(1-25):");scanf("%d",&move);for(i=0; i<strlen(passwd); i++){if(passwd[i] >= 'A' && passwd[i] <= 'Z'){passwd[i] = ((passwd[i]-'A')+26-move)%26+'A';}else if(passwd[i] >= 'a' && passwd[i] <= 'z'){passwd[i] = ((passwd[i]-'a')+26-move)%26+'a';}}printf("解密后的原文");printf("%s\n",passwd);}return 0;
}

凯撒密码加密解密C语言详细代码相关推荐

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

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

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

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

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

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

  4. 2.凯撒密码加密解密(C)

    明文空间M.密文空间C都是和密钥空间K满足,M=C=K={0,1,2,-,25}=Z_26 ,即把26个英文字母与整数0,1,2,-,25一一对应. 加密变换,E={E:Z26→Z26, Ek (m) ...

  5. Matlab凯撒密码加密解密

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

  6. C++实现古典密码-凯撒密码加密解密算法

    文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...

  7. 凯撒密码加密、解密、暴力破解(C语言实现)

    C语言设计,替换密码开发设计,2022年9月信息安全课程作业分享 #include<stdio.h> #include<string.h> #include<stdlib ...

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

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

  9. 5.3使用凯撒密码加密和解密英文文件python

    1本关任务:使用凯撒密码加密和解密英文文件.具体要求如下: (1)接收一个字符串为参数,如果参数值为加密,要求用户输入一个要加密的文件名,再输入一个单词做为密钥发生器,用于计算偏移量,对文件中的内容进 ...

最新文章

  1. Oracle Data Guard 理论知识
  2. Exploring the 7 Different Types of Data Stories
  3. 节点name在graph中无法展示_图节点分类与消息传递
  4. kesioncms ajax分页,改进KesionCMS V9.0x SQL标签分页支持嵌套
  5. 访问网址(使用CDN)时 智能DNS调度 与 用户定位调度(根据IP定位)
  6. CANOE学习笔记-CAPL语言设计
  7. 机械秒表的使用方法_秒表的使用方法?
  8. Trnsys模块Type14hfunction editor界面打不开
  9. three.js教程和手册
  10. Teststand-并行测试模型设置步骤
  11. SNS光纤交换机命令及作用
  12. 阿里云 mysql 100_【故障公告】阿里云 RDS 数据库服务器 CPU 100% 造成全站故障
  13. Python数据分析-房价的影响因素图解
  14. python贴吧签到多账号版本最新可用
  15. C++ 模板实现—双向链表: doubly linked list
  16. NameNode作用
  17. 距离度量与相似性度量
  18. BZOJ 2006超级钢琴
  19. 阿里云个人账户如何变更为企业用户
  20. IOS学习之苹果设备分辨率一览表

热门文章

  1. 计算机桌面右下角的图标不见了,电脑右下角图标不见了怎么办 系统托盘图标消失了解决方法...
  2. 音视频基础概念(3)——音视频编码与音视频容器
  3. linux系统出现BUG:softlockup- CPU#7 STUCK FOR 22s 等字样的解决办法并永久生效
  4. HTB_Weak RSA
  5. 元宇宙项目的新黑马ComputeCoin(CCN)
  6. Java8中 LocalDate和java.sql.Date的相互转换
  7. 微信小程序 - 查看输入值的长度
  8. 新冠病毒中招|第一天
  9. 网易2019年Q3财报净利47.26亿元 从财报看网易的长期主义
  10. uniapp h5 引入高德地图