单表代换密码(凯撒密码)
- 单表代换密码概述
- 对所有的明文字母都用一个固定的代换进行加密 ,因而称为
- 单表代换密码。加密过程中是从明文字母表到密文字母表的一一映射。例:
- 恺撒(Caesar)密码。
- 缺点:不能抗击字母频度分析,容易被破译
- 单表密码的弱点:明文和密文字母之间的一一代替关系。这使得明文中的一些固有特性和规律(比如语言的各种统计特性)必然反映到密文中去。
- 凯撒密码加解密过程(C实现)
#include <iostream> #include "string.h" using namespace std;char* CaesarEncrypt(char* plaintext); char* CaesarDecrypt(char* ciphertext); char a[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 b[26]={'X','N','Y','A','H','P','O','G','Z','Q','W','B','T','S','F','L','R','C','V','M','U','E','K','J','D','I'};int main() {char plaintext[105];printf("please input a string:\n");gets(plaintext);char *ciphertext1=CaesarEncrypt(plaintext);CaesarDecrypt(ciphertext1);getchar();getchar();return 0; }char* CaesarEncrypt(char plaintext[]){char ciphertext[105];int i=0;int sizeofplaintext=strlen(plaintext);for(i=0;i<sizeofplaintext;i++){int flag=0;for(int j=0;j<26;j++){if(plaintext[i]==a[j]){ciphertext[i]=b[j];flag=1;}}if(flag!=1){ciphertext[i]=' ';}}ciphertext[i]='\0';printf("the ciphertext is:" );printf("%s",ciphertext);char *str = new char[strlen(ciphertext) + 1]; //分配存储空间 strcpy_s(str, strlen(ciphertext) + 1,ciphertext); //将s中字符串复制到str,最后一个空间为'\0'结束符 return str; }char* CaesarDecrypt(char* ciphertext){int sizeofciphertext=strlen(ciphertext);int i;char plaintext[105];for(i=0;i<sizeofciphertext;i++){int flag=0;for(int j=0;j<26;j++){if(ciphertext[i]==b[j]){plaintext[i]=a[j];flag=1;}}if(flag!=1){plaintext[i]=' ';}}plaintext[i]='\0';cout<<"\nthe plaintext is:"<<plaintext<<endl;return plaintext; }
- 结果演示
- 凯撒密码密码表
单表代换密码(凯撒密码)相关推荐
- 移位密码(凯撒密码)
一.移位密码(凯撒密码) 移位密码是一种简单的加密方法,它通过将明文中的每个字符按照一定规则向左或向右移动若干位来生成密文.移位密码通常使用偏移量来确定每个字符移动的位数. 二.加密解密 1. 移位加 ...
- python编写凯撒密码的加密函数_python实现 古典密码 凯撒密码的加密与解密
python实现 古典密码 凯撒密码的加密与解密 实现效果如下图: # 凯撒密码加密与解密 # author Sundm string = ['a','b','c','d','e','f','g',' ...
- 古老密码---凯撒密码
将替代密码用于军事用途的第一个文件记载是恺撒著的<高卢记>.恺撒描述了他如何将密信送到正处在被围困.濒临投降的西塞罗.其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息.苏托尼厄斯在公元 ...
- C++实现古典密码-凯撒密码加密解密算法
文章目录 第一部分 Caesar密码简介 1.1 基本思想 1.2 历史沿革 第二部分 Caesar密码的C++实现 第一部分 Caesar密码简介 1.1 基本思想 在密码学中,恺撒密码(英语:Ca ...
- 【密码学-凯撒密码】
现代密码学-单表代换密码 凯撒密码原理 移位变换 仿射变换 代码实现-凯撒密码 代码实现-放射变换 凯撒密码原理 凯撒密码的加密代换和解密代换分别为 c=Ek(m)=m+3(mod26)c=E_{k} ...
- 凯撒密码的自动化破解方法(适用于英文文本)
凯撒密码的自动化破解方法(适用于英文文本) 凯撒密码 凯撒加密是有记载的最古老的加密方法.原始的凯撒密码没有密钥,加密方式很原始,就是通过将字母表循环右移三位进行加密:a被D替代,b被E替代,-,x被 ...
- java密码框转字符串_实现汉字的凯撒密码(内容包括:去掉字符串中的转义字符、汉字的unicode转换)...
实验内容: 选择合适的秘钥,利用上述三个算法:熟悉恺撒密码.双重置换密码.一次一密密码算法.加密如下明文: 大风起兮云飞扬, 威加海内兮归故乡, 安得猛士兮守四方. <大风歌>--刘邦 3 ...
- playfair密码和凯撒密码加密算法的Java实现
文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...
- C语言凯撒密码字母向后偏移三位,凯撒加密解密(java字母移位)
1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a-w之间通过加3之后再转化为字符型输出,x-z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...
- 密码学学习笔记(一)——凯撒密码及简单替换密码
文章目录 1. 凯撒密码 1.1 加解密方式 1.1.1 加密 1.1.2 解密 1.2 暴力破解 2. 简单替换密码 2.1 加解密方式 2.1.1 加密 2.1.2 解密 2.2 频率分析法破解 ...
最新文章
- 如何使用多个参数调用Angular.js过滤器?
- iris数据_MAT之ELM:ELM实现鸢尾花(iris数据集)种类测试集预测识别正确率(better)结果对比...
- PAFF 和MBAFF
- Django之form表单组件、cookie与session
- android cpu 压力测试,两个古董级压力测试工具 leakyapp.exe 和 cpustre.exe
- 【Redis】redis 哨兵模式
- PHP exec或system执行linux脚本或可执行文件不成功?权限不够。
- 方程求根(牛顿迭代法)
- pytest文档4-测试用例setup和teardown
- 十进制转换为任意进制及操作符重载
- 机器学习第五回——学习方法与学习曲线
- cloudera manager安装使用
- uu云验证码识别平台,验证码,验证码识别,全自动验证码识别技术,优优云全自动打码,代答题系统,优优云远程打码平台,uu云打码...
- ZEMAX | HUD 设计实例
- 【WIN11】微软拼音输入法单字频率固定方法
- MMQ 开源免费 同时支持分布式架构和数据持久化、规则引擎、ACL的MQTT broker。
- 总纲篇:塑胶材料选型、模具工艺、注塑工艺指导
- ffmpeg生成透明背景视频
- 为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?
- 《电磁场与电磁波》---恒定电场思维导图
热门文章
- 人工智能带来的是大规模失业,还是“少干活多拿钱”?
- 播放失败246106异常代码_史上最全燃气壁挂炉故障代码,这个值得收藏
- 软件测试工程师面试题-测试概念篇
- vue3 和typescript的强强联合的初次体验——摔跤放弃到重来
- 【科普】基础教程系列之装系统篇
- 解决Paradox Interactive系列游戏加载mod时的路径问题
- 《电务工作日志》Android版,工作日志软件
- 六、Docker镜像原理
- 手机投屏索尼电视显示无法访问服务器,钉钉视频会议投屏不成功是什么原因 钉钉视频会议如何屏幕共享...
- 单片机多功能电子琴课设_基于51单片机设计的简易电子琴