凯撒密码加密解密C语言详细代码
凯撒密码加密解密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语言详细代码相关推荐
- 凯撒密码加密解密——Java代码(密码学)
凯撒密码加密解密--Java代码(密码学) 凯撒密码: 恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文 ...
- C++凯撒密码加密解密算法
一.算法描述 凯撒密码的加密解密算法,逻辑很简单,就是两个公式: 比如说下面这个例子的加密解密公式,就是位移量为3时的结果 加密公式 f(a)=(a+3) mod 26 解密公式 f(a)=(a+23 ...
- Python编程:实现凯撒密码加密解密
凯撒密码 原理: 通过把字母移动一定的位数来实现加解密 明文中的所有字母从字母表向后(或向前)按照一个固定步长进行偏移后被替换成密文. 例如: 当步长为3时,A被替换成D,B被替换成E,依此类推,X替 ...
- 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) ...
- Matlab凯撒密码加密解密
Pratice problem: Bob wants to send the message "Start sending messages at 8:30" to Alice i ...
- C++实现古典密码-凯撒密码加密解密算法
文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...
- 凯撒密码加密、解密、暴力破解(C语言实现)
C语言设计,替换密码开发设计,2022年9月信息安全课程作业分享 #include<stdio.h> #include<string.h> #include<stdlib ...
- python凯撒密码加密写入文件_Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作...
#-*- coding: gb2312 -*-#用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作#作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/k ...
- 5.3使用凯撒密码加密和解密英文文件python
1本关任务:使用凯撒密码加密和解密英文文件.具体要求如下: (1)接收一个字符串为参数,如果参数值为加密,要求用户输入一个要加密的文件名,再输入一个单词做为密钥发生器,用于计算偏移量,对文件中的内容进 ...
最新文章
- Oracle Data Guard 理论知识
- Exploring the 7 Different Types of Data Stories
- 节点name在graph中无法展示_图节点分类与消息传递
- kesioncms ajax分页,改进KesionCMS V9.0x SQL标签分页支持嵌套
- 访问网址(使用CDN)时 智能DNS调度 与 用户定位调度(根据IP定位)
- CANOE学习笔记-CAPL语言设计
- 机械秒表的使用方法_秒表的使用方法?
- Trnsys模块Type14hfunction editor界面打不开
- three.js教程和手册
- Teststand-并行测试模型设置步骤
- SNS光纤交换机命令及作用
- 阿里云 mysql 100_【故障公告】阿里云 RDS 数据库服务器 CPU 100% 造成全站故障
- Python数据分析-房价的影响因素图解
- python贴吧签到多账号版本最新可用
- C++ 模板实现—双向链表: doubly linked list
- NameNode作用
- 距离度量与相似性度量
- BZOJ 2006超级钢琴
- 阿里云个人账户如何变更为企业用户
- IOS学习之苹果设备分辨率一览表
热门文章
- 计算机桌面右下角的图标不见了,电脑右下角图标不见了怎么办 系统托盘图标消失了解决方法...
- 音视频基础概念(3)——音视频编码与音视频容器
- linux系统出现BUG:softlockup- CPU#7 STUCK FOR 22s 等字样的解决办法并永久生效
- HTB_Weak RSA
- 元宇宙项目的新黑马ComputeCoin(CCN)
- Java8中 LocalDate和java.sql.Date的相互转换
- 微信小程序 - 查看输入值的长度
- 新冠病毒中招|第一天
- 网易2019年Q3财报净利47.26亿元 从财报看网易的长期主义
- uniapp h5 引入高德地图