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

这篇具有很好参考价值的文章主要介绍了信息安全——移位密码算法(C++实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

信息安全导论课程学习的实验一,移位密码算法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) 算法流程

        算法流程如下。如图所示

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

输入

        第一行输入表明是加密还是解密,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;
}

 文章来源地址https://www.toymoban.com/news/detail-403006.html

到了这里,关于信息安全——移位密码算法(C++实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 信息安全复习四:置换密码&乘积密码&隐写术

    置换密码、Rail Fence密码、行置换密码、乘积密码、转子机、隐写术 重新排列明文字母,达到信息加密的目的。 与替代密码不同的是,原来明文中的字母同样出现在密文中,只是顺序被打断。 古典的置换密码的例子:Rail Fence密码、行置换密码、乘积密码、转子机、隐写术 羊

    2024年02月10日
    浏览(82)
  • 信息安全复习六:公开密钥密码学

    1.公开密钥密码模型的基本原理 2.两个算法:RSAD-H算法 主要内容 1.对称密钥密码的密钥交换问题 2.公钥密码模型的提出 3.设计公钥密码的基本要求 4.数字签名 5.RSA算法 6.公钥密码的特征总结 1.对称加密是什么 :对称加密是指加密和解密用的是同一个密钥的加密方式。 2.对称加

    2023年04月25日
    浏览(54)
  • 加固密码安全:保护您的个人信息

    一、引言 在数字化时代,密码安全是保护个人信息和数据的重要环节。然而,许多人在创建和管理密码时存在一些常见的安全漏洞,如使用弱密码、重复使用密码等。本文将详细介绍密码安全的重要性,并提供一些有效的方法和技巧,帮助您加固密码安全,保护个人信息不被

    2024年01月21日
    浏览(52)
  • 从密码学了解如何确定物联网信息安全

    编码学和分析学的关系:相互对立、相互依存、相互促进 1.第一阶段:几千年前到1949年,此时还没有形成一门科学,靠密码分析者的直觉和经验来进行 代表:Caesar密码、Playfair密码 2.第二阶段:1949年到1975年,正式成为了一门学科 3.第三阶段:1976年至今,形成了密码体系 1

    2024年02月11日
    浏览(41)
  • 信息安全概论之《密码编码学与网络安全----原理与实践(第八版)》

    前言:在信息安全概论课程的学习中,参考了《密码编码学与网络安全----原理与实践(第八版)》一书。以下内容为以课件为主要参考,课本内容与网络资源为辅助参考,学习该课程后作出的总结。 该课程不是密码学编程,也不是网络安全攻防课程,而是学生进入信息安全

    2024年02月10日
    浏览(41)
  • 电科院密码保密与信息安全竞赛网络攻防宣传赛 Writeup

    战队名称:20221214 战队排名:1 用Winhex打开,最后有一串编码字符,拿去一把梭即可。 目录穿越 GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/flag 仔细观察可以看到url编码后的SQL注入语句,mid用于截取字符串,当出现 welcome admin! 说明该字符正确,将正确的字符逐个写入到C脚本变量中,输出得

    2024年04月08日
    浏览(78)
  • 揭秘网络安全攻防战:信息收集和密码破解的黑客技巧与防护策略

    今天我们将专注于网络安全基础知识的练习,包括信息收集和弱口令密码破解。在信息收集方面,我们将重点介绍目录信息的收集方法。例如,我们会讨论如何解析类似于\\\" https://域名/path \\\"这样的路径信息,特别是当这些路径信息是我们之前未曾了解的情况下。而在密码破解

    2024年04月24日
    浏览(50)
  • 【网络与信息安全学报】区块链密码学隐私保护技术综述——CCF T2

    区块链密码学隐私保护技术综述 Survey on blockchain privacy protection techniques in cryptography Abstract 近年来,数据隐私问题日益明显,如何在区块链中实现有效的隐私保护是研究热点。针对区块链在隐私保护上的研究现状与发展态势,阐述了区块链在交易地址、预言机以及智能合约上

    2024年02月03日
    浏览(66)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(64)
  • 商用密码应用与安全性评估要点笔记(密码算法ZUC)

    1、ZUC算法简介         ZUC算法属于对称密码算法,具体来说是一种序列密码算法或流密码算法。ZUC算法以中国古代数学家祖冲之首字母命令。         ZUC算法标准包括三个部分:         GMT 0001.1-2012 祖冲之序列密码算法:第1部分:算法描述         GMT 0001.2-201

    2024年02月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包