1、解密iodj$vkhuCh

2、暴力解密39.4H/?BA2,0.2@.?J

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
string s,m;
void shuchu(int l)
{for(int i=0;i<l;i++){printf("%c",m[i]);}printf("\n");
}
void kaisa_jiami(int k)
{int l=s.length();for(int i=0;i<l;i++){m[i]=(s[i]+k)%128;}printf("加密结果:");shuchu(l);
}
void kaisa_jiemi()
{int l=s.length();int k=s[0]-'f';//因为已经知道了解密的第一个字母是f,所以我只要先算出s[0]到f的偏移量for(int i=0;i<l;i++){m[i]=(s[i]+128-k)%128;//凯撒密码是只要26个字母,而选128个全assci码表是大范围。}printf("解密结果:");shuchu(l);
}
void kaisa_jiemi(int k)
{int l=s.length();for(int i=0;i<l;i++){m[i]=(s[i]+128-k)%128;}printf("解密结果:");shuchu(l);
}
int main()
{int n,x,k,flag1=1,flag2,flag3;while(flag1==1){printf("请输入操作方式:1、加密   2、解密  3、退出:\n");scanf("%d",&n);getchar();if(n==1){printf("请输入所要加密的字符串:");getline(cin,s);flag2=1;while(flag2==1){printf("请输入加密时的偏移量:");scanf("%d",&k);if(k>=1&&k<=127){kaisa_jiami(k);flag2=0;}elseprintf("输入错误,偏移量应在1~127之间!请重新输入!\n#############################################################\n");}}else if(n==2){printf("请输入所要解密的字符串:");getline(cin,s);flag2=1;while(flag2==1){printf("是否已知偏移量?0、未知  1、已知:");scanf("%d",&x);if(x==0){kaisa_jiemi();flag2=0;}else if(x==1){flag3=1;while(flag3==1){printf("请输入解密时的偏移量:");scanf("%d",&k);if(k>=1&&k<=127){kaisa_jiemi(k);flag3=0;}elseprintf("输入错误,偏移量应在1~127之间!请重新输入!\n#############################################################\n");}flag2=0;}elseprintf("输入错误!请重新输入!\n#############################################################\n");}}else if(n==3)flag1=0;elseprintf("输入错误!请重新输入!\n#############################################################\n");}return 0;
}

凯撒加密,已知偏移量和未知偏移量解密相关推荐

  1. python 凯撒加密 计算偏移量

    接收一个字符串method为参数,根据参数值调用不同函数实现对文本的加密和解密. method 值为 '统计字符'时,统计并输出文本中不同类型字符的数量并输出. method 值为 '统计单词'时,统 ...

  2. 凯撒加密的python语言程序_python实现凯撒密码、凯撒加解密算法

    凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字母,在变换加密之前把明文字母都替换为大写字母 def casar(message): # *************begin* ...

  3. 凯撒加密方法介绍及实例说明

    摘要 在密码学中,凯撒密码(英语:Caesar cipher),或称凯撒加密.凯撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前) ...

  4. Problem C 凯撒加密

    Problem Description 已知的最古老的一种加密技术是凯撒加密.该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代.如果越过了字母Z,会绕回到字母表的起始位置.例如,如果 ...

  5. Python暴力破解凯撒加密的文本

    凯撒加密是一种经典加密算法,把文本中的每个英文字母替换为字母表中后面第k个字母.该加密算法的抗攻击能力比较弱,因为密钥(也就是k)的取值范围是固定的,很容易暴力破解.当然,也可以利用英文的统计特性(例 ...

  6. python凯撒加密代码_解密题(凯撒密码)

    在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一 ...

  7. 凯撒加密的python语言程序_Python的凯撒密码加密为啥要ord(a),然后又减去?...

    当p为字母z时,试一下直接ord(p)+3就知道啦. 我假设老哥你已经懂了python语法,我就只讲讲凯撒加密.凯撒加密说白了就是偏移字母的位置,将原来的字母用它之后的第x个字母来代替原来的字母进行加 ...

  8. python凯撒加密实验报告_Python之凯撒加密

    凯撒加密介绍 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术. 它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 例,当偏移量是3的时 ...

  9. 【每日一题】| (古典加密)凯撒密码(一)简单的凯撒加密

    文章目录 前言 一.凯撒加密是什么 举个例子 扩展:ROT-13(回转13位) 二.密码破解 总结 前言 今天的每日一题,由我向来大家来介绍预备知识.今天就跟大家聊一聊CTF密码学中古典加密的经典加密 ...

  10. CTF 【每日一题 20160707】凯撒加密

    来源:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=35 题目:凯撒加密 大概就是这样吧,不能告诉你再多了.. ...

最新文章

  1. 德国耶拿大学植物微生物组实验室急招博士生项目,申请截止19年3月20日
  2. JavaScript 面向对象的程序设计1
  3. 红黑树和平衡二叉树的区别_一文搞懂红黑树
  4. 深入浅出看懂AlphaGo Zero - PaperWeekly 第51期
  5. 面向对象编程(OOP)特性 类和对象
  6. from robot.api import logger
  7. python读取数据文件、并把里面的数据变成x的二维坐标_(数据科学学习手札60)用Python实现WGS84、火星坐标系、百度坐标系、web墨卡托四种坐标相互转换...
  8. 15. 深入解析Pod对象(二):使用进阶
  9. 线程池ThreadPoolExecutor使用
  10. 《图解HTTP》阅读笔记--第六章--HTTP首部
  11. UML统一建模语言简介
  12. 机器视觉运动控制一体机应用例程 | 瓶盖密封完整性检测
  13. [安洵杯 2019]easy misc 1
  14. ts快捷键 vscode_vscode这篇就够了
  15. python%是什么意思_%在Python中是什么意思?
  16. 详解SOME/IP测试
  17. 知识普及:KB=Kb?
  18. 《程序员》12月精彩内容:双11技术决战
  19. 手机抓取蓝牙日志btsnoop的方法汇总(Android一直补充中)
  20. C++的开方,平方,绝对值

热门文章

  1. Java音频格式转换,支持amr、aud、slk、silk转成mp3的程序
  2. HadoopYarn设置Fair Scheduler公平调度器
  3. 手机如何将PDF文件拆分?分享两种手机拆分文件方法
  4. 甲乙2个人去买冬瓜,甲买差7元,乙买差9元,合买差1元,冬瓜多少钱?
  5. Redis Cluster集群
  6. web工程无法访问本地图片解决方案
  7. 关于几种常用的脱壳方法总结
  8. 【rzxt】笔者支招:电脑的散热大户显卡温度过高如何解决
  9. BEC听力训练 方法2
  10. 小红书怎么看关键词排名?如何提升笔记自然搜索排名