凯撒密码Caesar
//@132屋里上课群
#include<stdio.h>
#include<stdlib.h>//颜色
using namespace std;
int jiami();
int jiemi();
int main()
{
printf("************************************************************\n");
printf("* 凯撒Caesar *\n");
printf("* *\n");
printf("* 1.加密 *\n");
printf("* 2.解密 *\n");
printf("* 【注】:退出请按0 *\n");
printf("************************************************************\n");
system("color 40");
int id;
printf("【键入操作代号】:");
scanf("%d",&id);
switch(id)
{
case 1:
jiami();
break;
case 2:
jiemi();
break;
case 0:
system("color 40");
return 0;
default:
main ();
}
return 0;
}
/***********加密*************/
int jiami()
{
int ii=1,kk=2;
printf("[键入完成请输入'/'] \n\n");
printf("———————————————————————————————————————————————————\n");
printf("[明文信息]\n\n");
char miw[150];
char mingw[100];
for(ii;ii<100;ii++)
{
mingw[ii]=getchar();
if(mingw[ii]<=120&&mingw[ii]>=97)
{
miw[ii]=mingw[ii]+3;
continue;
}
if(mingw[ii]=='x')
{
miw[ii]='a';
}
if(mingw[ii]=='y')
{
miw[ii]='b';
}
if(mingw[ii]=='z')
{
miw[ii]='c';
}
if(mingw[ii]==' ')
{
miw[ii]=' ';
}
if(mingw[ii]=='/')
{
printf("\n\n");
printf("[密文信息] \n\n");
system("color 50");
break;
}
}
for(kk;kk<ii;kk++)
{
if(miw[kk]==' ')
{
printf(" ");
continue;
}
printf("%c",miw[kk]);
}
printf("\n\n");
int id;
printf("———————————————————————————————————————————————————\n");
printf("【键入操作代号】:");
scanf("%d",&id);
switch(id)
{
case 1:
jiami();
break;
case 2:
jiemi();
break;
default:
main ();
case 0:
system("color 40");
return 0;
}
return 0;
}
/***********解密*************/
int jiemi()
{
int ii=1,kk=1;
printf("[键入完成请输入'/'] \n\n");
printf("———————————————————————————————————————————————————\n");
printf("[密文信息]\n\n");
char miw[150];
char mingw[100];
for(ii;ii<100;ii++)
{
miw[ii]=getchar();
if(miw[ii]<=123&&miw[ii]>=100)
{
mingw[ii]=miw[ii]-3;
continue;
}
if(miw[ii]=='a')
{
mingw[ii]='x';
}
if(miw[ii]=='b')
{
mingw[ii]='y';
}
if(miw[ii]=='c')
{
mingw[ii]='z';
}
if(miw[ii]==' ')
{
mingw[ii]=' ';
}
if(miw[ii]=='/')
{
printf("\n\n");
printf("[明文信息] \n\n");
system("color 60");
break;
}
}
for(kk;kk<ii;kk++)
{
if(mingw[kk]==' ')
{
printf(" ");
continue;
}
printf("%c",mingw[kk]);
}
printf("\n\n");
int id;
printf("———————————————————————————————————————————————————\n");
printf("【键入操作代号】:");
scanf("%d",&id);
switch(id)
{
case 1:
jiami();
break;
case 2:
jiemi();
break;
case 0:
system("color 40");
return 0;
default:
main ();
}
return 0;
}
@信息安全概论作业
凯撒密码Caesar的更多相关文章
- FCC JS基础算法题(13):Caesars Cipher(凯撒密码)
题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ...
- 凯撒密码(Caesar cipher) 详解
------------恢复内容开始------------ 最近训练CTF的时候,发现密码学这块的知识不太系统,所以自己接下来会陆陆续续整理出来 就先从古典密码中的凯撒密码说起吧 凯撒密码内容比较简 ...
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
# -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...
- C语言:凯撒密码的实现
凯撒密码的实现(10分)题目内容: 凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令.它将字母表中的字母移动一定位置而实现加密. ...
- 凯撒密码 CH Round #57 - Story of the OI Class
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...
- java:凯撒密码及String的应用
一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...
- 凯撒密码加密解密--JAVA实现(基础)
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...
- Python的一个解释凯撒密码的程序
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ...
- 凯撒密码移位python
#!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ...
随机推荐
- Java 使用 Maven BOM 统一管理版本号
一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号.如果这些 JAR 包单独发布,然后直接通过版本号引用相应的 JAR 包,不同版本的兼容性维护将变得十分麻烦.为了 ...
- 弦图及其在 OI 中的现代应用
八月份的时候得知要填综评表格,综评表格里面又需要一个研究性学习报告,而我连研究性学习课的老师长啥样都不知道.于是我把两份 OI 笔记拼拼凑凑成了这篇文章充当两份研究性学习报告之一(另一份可能更有趣一些 ...
- 后端Spring Boot+前端Android交互+MySQL增删查改
2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...
- [Vue warn]: Unknown custom element: <terminal-process> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
Vue组件注册报错问题 import 不要加{},排查出如果页面引用单个组件的时候不要加上{}中括号,引入多个组件时才能派上用场,中括号去除问题即可解决.
- Mysql之读写分离架构-Atlas
Atlas介绍 1.png Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目. 它是在mysql-proxy 0.8.2版本的基础上, ...
- JVM JIT动态编译
一.概述 1.1 基本概念 a. 动态编译(dynamic compilation)指的是"在运行时进行编译":与之相对的是事前编译(ahead-of-time compilati ...
- PostMessage xss学习和挖掘
PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...
- 1.6.5- HTML之自定义列表
定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号,其基本语法如下: <dl> <dt>定义标题</dt> <dd>定义描述, ...
- 03- web表单测试
软件分为 b/s c/s两种架构 表单测试 1.用户注册,登录,信息提交. 2.用户查询商品. 3.用户订购商品. 4.用户查询订单等. 表单测试实例 表单数据添加测试(一) 添加按钮可用,测试点击添 ...
- 使用BurpSuite抓取HTTPS网站的数据包
昨天面试,技术官问到了我如何使用BurpSuite抓取https网站的数据包,一时间没能回答上来(尴尬!).因为以前https网站的数据包我都是用Fiddler抓取的,Fiddlert自动帮我们配置好 ...