信息安全——移位密码算法(C++实现)

article/2025/9/17 0:42:35

信息安全导论课程学习的实验一,移位密码算法C++的实现。 

        移位密码算法是较为简单的算法,只是简单的对明文进行指定位数的移位操作,C++语言实现也较为简单,不需要过多赘述。

        以下简单介绍了以下移位密码算法的原理:

【原理】

1) 算法原理

        a) 移位密码就是对26个字母进行移位操作,可以移动任意位数,这样就实现了对明文的加密,移位操作简单易行,因此,加密解密比较简单。

        b) 移位密码的基本思想:移位密码算法 c=m+k(mod 26),k可以使0<k<26的任意整数。加密算法:x=x+k(mod26),解密算法x=x-k(mod 26)。当K=3,时,为凯撒密码。

2) 算法参数

        移位密码算法主要有c、m、k 三个参数。c 为密文,m 是明文,k 为密钥。

3) 算法流程

        算法流程如下。如图所示

输入

        第一行输入表明是加密还是解密,0是加密,1是解密;

        第二行是加密或解密密钥,是0<k<26之间的一个整数;

        第三行是明文或密文。

输出

        输出是明文或密文。

以下是代码实现:

#include <iostream>
#include <string.h>
using namespace std;//【实验目的】//1) 学习移位密码的原理
//2) 学习移密码的实现
//【实验原理】
//1) 算法原理
//a) 移位密码就是对26个字母进行移位操作,可以移动任意位数,这样就实现了对明文的加密,移位操作简单易行,因此,加密解密比较简单。
//b) 移位密码的基本思想:移位密码算法 c = m + k(mod 26), k可以使0 < k < 26的任意整数。加密算法:x = x + k(mod26),解密算法x = x - k(mod 26)。当K = 3, 时,为凯撒密码。
//    2) 算法参数
//    移位密码算法主要有c、m、k 三个参数。c 为密文,m 是明文,k 为密钥。// A:65 a:97
void Encrypt(int k, char* m) // 加密
{int len = strlen(m);char* a = new char[len];for (int i = 0; i < strlen(m); i++){int l = (m[i] - 'a' + k);if (l < 0) // 移位 {a[i] = l + 26 + 'a' - 32;}else{a[i] = l % 26 + 'a' - 32;}}for (int i = 0; i < strlen(m); i++){cout << a[i];}cout << '\n';
}void Decrypt(int k, char* c) // 解密
{int len = strlen(c);char* b = new char[len];for (int i = 0; i < strlen(c); i++){int l = (c[i] - 'A' - k);if (l < 0) // 移位 {b[i] = l + 26 + 'A' + 32;}else{b[i] = l % 26 + 'A' + 32;}}for (int i = 0; i < strlen(c); i++){cout << b[i];}cout << '\n';
}int main()
{int op, k;char str[1000];for (int i = 2; i > 0; i--){cin >> op;switch (op){case(0): // 加密{cin >> k;cin >> str;Encrypt(k, str);break;}case(1): // 解密{cin >> k;cin >> str;Decrypt(k, str);break;}}}return 0;
}

 


http://chatgpt.dhexx.cn/article/sqjXOES9.shtml

相关文章

linux常用命令学习总结(超详细)

作为一个程序员&#xff0c;我们在进行项目部署和运维时&#xff0c;经常会用到一些linux命令&#xff0c;可是这些命令老是忘记&#xff0c;每次用到的时候都要去谷歌百度&#xff0c;很是麻烦&#xff01;这不&#xff0c;为了自己使用方便&#xff0c;对常见的linux命令进行…

批处理命令之find 和findstr

find 作用&#xff1a;从文件中收索字符串 格式&#xff1a;find 参数 "字符串" 路径\文件名 参数&#xff1a; /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I 搜索字符串时忽略大小写。 /OFF[LINE] 不要跳过具有脱机属性集…

pygame安装教程(python)

1&#xff0c;安装好python。 2&#xff0c;打开cmd 3&#xff0c;输入&#xff1a;pip --version 如果显示未安装pip&#xff0c;那么输入pip。 等待安装完毕。 检查pip是否安装&#xff1a;pip --version 4&#xff0c;输入&#xff1a;pip install pygame 可能会出现这种错…

pygame安装教程(window)

来自一个初学者的疯狂吐槽&#xff0c;最近在学python设计游戏&#xff0c;要安装pygame。这他娘的&#xff0c;安装一个这个&#xff0c;能把刘某人老命要了&#xff0c;各种资源以及资料&#xff0c;各种尝试&#xff0c;各种装不上&#xff0c;各种错误&#xff0c;各种乱七…

Windows Pygame 安装教程 (自己识别版本号并下载)

最近在自学python&#xff0c;准备写个小项目&#xff0c;这个项目需要安装pygame&#xff0c;书中有给出了两个下载链接&#xff1a;https://bitbucket.org/pygame/pygame/downloads/和http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame。 自己也尝试下载了两个版本可是提示…

Python之pygame安装教程

首先把Python进行安装好。配置两个环境变量: 在系统变量中找到path&#xff0c;加入Python和pip的安装目录。打开cmd&#xff0c;输入Python&#xff0c;检查Python是否配置成功&#xff0c;如跟图1一样说明配置成功。关闭cmd&#xff0c;重新打开&#xff0c;键入pip&#xff…

python-pygame安装教程

网上有很多关于python&#xff0c;pygame的安装教程。大都比较麻烦&#xff0c;下面为大家介绍一种非常简单的安装方法。&#xff08;因为安装大都是新手教程写详细一些&#xff09; python是32位 python是3.6 1 pip配置 安装好python后&#xff0c;配置环境变量。 安装pygame需…

python没有pygame_pygame安装教程全程详解

1、python --version 查看安装的Python版本, pip --version 查看安装的pip版本, 升级pip命令: python -m pip install --upgrade pip 如果已经下载了安装文件就使用:pip install 文件名 如果没有下载就使用:python -m pip install --user 模块名,系统自动下载 2、如果没有…

python安装pygame的命令是什么_Python的pygame安装教程详解

简介 关于Pygame的基本信息&#xff0c;pygame是什么&#xff0c;谁会被Pygame吸引&#xff0c;并且在哪里找到它。 Pygame是被设计用来写游戏的python模块集合&#xff0c;Pygame是在优秀的SDL库之上开发的功能性包。使用python可以导入pygame来开发具有全部特性的游戏和多媒…

Pygame安装教程及基本配置(详细图文)

1、python --version 查看安装的Python版本&#xff0c; pip --version 查看安装的pip版本&#xff0c; 升级pip命令&#xff1a; python -m pip install --upgrade pip 如果已经下载了安装文件就使用&#xff1a;pip install 文件名 如果没有下载就使用&#xff1a;python …

Pygame 安装教程

实验周用 Python 写个小游戏&#xff0c;需要用到 Pygame &#xff0c;记录一下安装过程。 一、下载文件 先去官网下载文件。我选的是 Pygame1.9 版本&#xff0c;因为去图书馆借了本书&#xff0c;是按照 Pygame1.9 版本进行讲解的&#xff0c;如果用 Pygame2.X &#xff0c;…

python安装pygame教程_pygame 安装教程

步骤&#xff1a; 1.去官网下载PyGame 注意&#xff1a;要下载对应版本的包 其中&#xff0c;如果python为以下版本&#xff1a; &#xff08;cp36就是python3.6的意思&#xff09; 2. .exe文件直接安装 .whl文件启动doc命令安装&#xff1a; 在文件所在位置打开doc界面…

pygame安装教程(小白入手)

** pygame安装教程&#xff08;小白入手&#xff09; ** 1.在python官网上下载pygame 官网url 点击pypi 在搜索框输入pygame 点击搜索 点击对应的版本&#xff08;选择第一个&#xff09; 看到对应的图标&#xff0c;点击下载 2.pygame版本的选择 上一步骤点击下载之后…

IDEA 设置背景颜色为黑色

黑夜给了我黑色的眼睛我却用它来寻找光明。既然是黑色的眼睛那就设置一波黑色背景吧。在黑色额背景中寻找光明。 设置步骤&#xff1a; File->Settings->Appearance&Behavior->Appearance 就是如此的简单迅速&#xff0c;黑色诱惑一波。 就很nice&#xff01;&a…

IDEA设置背景颜色(护眼色)

在开发的时候&#xff0c;眼睛一直盯着开发工具难免会眼睛干涩&#xff0c;时间长了造成视力疲劳&#xff1b;绿色又是公认的护眼色&#xff0c;三步将你的IDEA设置为护眼色 看起来是不是舒服了点

设置idea的背景颜色为护眼的绿色

按照图片中的1-6的步骤点击 1.file 2.setting 3.editor 4.color 5.color sheme 6.genneral 7.default text 然后设置背景色 设置完成后的背景色 我的RGB比例是 217 242 208 觉得好用的&#xff0c;可以采纳

IDEA如何设置背景色?

由于开发需要长期盯着电脑&#xff0c;比较多的人喜欢使用黑色的背景色&#xff0c;因为黑色背景相比白色没这么刺眼&#xff01;最主要的是看着够酷炫&#xff01; 更改IDEA的背景色步骤如下&#xff1a; 第一步&#xff1a; 打开IDEA&#xff0c;点击左上角的File&#xff0…

IntelliJ IDEA-2017版设置背景颜色

国庆中秋临近&#xff0c;我在这里提前祝各位国庆、中秋快乐。废话不多说&#xff0c;接下来我来分享干货&#xff0c;哈哈。 第一步&#xff1a;打开IntelliJ IDEA 编辑器&#xff0c;点击“File”, 并选择"Settings...". 图一 第二步&#xff1a; 找到"Editor…

IDEA 设置背景图片及透明背景

准备工具 首先&#xff0c;要准备好IDEA和一个对象 打开idea File—>settings—> Appearance & Behavior 如图 在image中输入文件路径&#xff0c;注意要包含文件名&#xff1b; Opacity可以调解图片的对比度&#xff0c;数值越高&#xff0c;图片越清晰&#x…