1、 Veneral密码通用的编程方式为先将Vigeneral密码表写出来,再通过查表的方式给出。我们这个题目如果大家觉得麻烦,可以直接利用公式m_i+k_i求出密文c_i

#include<string.h>
#include<iostream>
using namespace std;
int main(){while (1){int ch, i, j;cout << "密码学实验6\n";cout << "1.加密\n";cout << "2.解密\n";cout << "3.退出\n";cin >> ch;if (ch == 1){char key0[10];int key1[10];char ming[100];char secret[100];cout << "请输入密钥" << endl;cin >> key0;cout << "转换后的密钥为:";for (i = 0; i < strlen(key0); i++){key1[i] = (int)key0[i] - 'a';cout << key1[i] << " ";}cout << endl;cout << "请输入明文:";cin >> ming;cout << "密文为:";for (i = 0; i < strlen(ming); i++){secret[i] = (((int)ming[i] - 'a')+key1[i%strlen(key0)])%26+'A';cout << secret[i] ;}cout << endl;}else if (ch == 2){char key0[10];int key1[10];char ming[100];char secret[100];cout << "请输入密钥" << endl;cin >> key0;cout << "转换后的密钥为:";for (i = 0; i < strlen(key0); i++){key1[i] = (int)key0[i] - 'a';cout << key1[i] << " ";}cout << endl;cout << "请输入明文:";cin >> secret;cout << "密文为:";for (i = 0; i < strlen(secret); i++){ming[i] = (((int)secret[i] - 'A') - key1[i%strlen(key0)] + 26) % 26 + 'a';cout << ming[i];}cout << endl;}else if(ch==3){return 0;}else{cout << "输入有误\n";}}system("pause");
}

密码学实验6 维吉尼亚密码相关推荐

  1. c语言维吉尼亚密码实验报告,维吉尼亚密码的C语言实现.doc

    2016春 密码学原理 软件学院 密码学原理作业报告 作业1:古典密码体制的实践与分析 姓名查志华院系软件学院学号1133710313任课教师刘绍辉指导教师刘绍辉实验地点哈尔滨工业大学实验时间2016 ...

  2. 实验吧-密码学-杯酒人生(特殊凯撒--维吉尼亚密码)(凯撒加解密脚本、维吉尼亚密码加解密脚本)...

    题目: 使用古典密码 一喵星人要想喵星发送一段不知道干什么用的密码"BLOCKCIPHERDESIGNPRINCIPLE", 但是它忘记了密钥是什么, 手头(爪头)只有它自己加密过 ...

  3. 古典密码之维吉尼亚密码实验

    学习目标: 维吉尼亚密码是古典密码中非常具有代表的例子.本实验要求用高级语言编写和调试一个简单的维吉尼亚密码实现及解密程序,通过本实验可以加深理解维吉尼亚密码原理. 预备知识: 人们在单一恺撒密码的基 ...

  4. 密码学之维吉尼亚密码

    密码学浅谈 密码学五元组:明文(P),密文(C),密钥(K),加密算法(E),解密算法(D),S={P,C,K,E,D} 密码学的信息安全系统目标:C,I,A C(Confidentiality):机 ...

  5. 维吉尼亚密码和一次性密码本_密码学中的一次性密码

    维吉尼亚密码和一次性密码本 The One-time Pad cipher is almost similar to the Vernam cipher, as, like the vernam ci ...

  6. 密码学笔记——维吉尼亚密码

    维吉尼亚密码 一.简介 维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式. 二.加密算法 直接拿例子来说,比如我要加密一段明文        明文:THISISTO ...

  7. 密码学 | 维吉尼亚密码(Vigener)

    1 单字母替换(前备知识) 在大量英文文献以及普通英文文章中,研究者发现这种文章中单词出现的频率符合一定的规律.如上表所示,例如a出现的频率在8.2%左右,e出现的频率最高,在12.4%左右.y.z频 ...

  8. 密码学(二):古典密码之维吉尼亚密码的破解

    维吉尼亚密码的破解 一.引言   上一章我们介绍了维吉尼亚密码的原理,是通过移位替换的加密方法进行加密,但是因为概率论的出现这种简单的移位或替换就容易破解了,其原理很简单,英文中字母出现的频率是不一样 ...

  9. 密码学——维吉尼亚密码

    文章目录 前言 一.维吉尼亚密码简介 二.维吉尼亚算法 1.加密算法 2.解密算法 3.主函数 总结 前言 本内容为博主学习维吉尼亚密码的笔记,如有错误,烦请指正. 一.维吉尼亚密码简介 维吉尼亚密码 ...

最新文章

  1. html制作虚拟人物,一种虚拟人物角色直播系统的制作方法
  2. 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)
  3. python 小说 云_小说python操作PLC
  4. 极酷WIFI深度剖析免费WIFI
  5. Pan JiaPu/ A real-time QRS detection algorithm
  6. python安装包后找不到指定模块
  7. 用python实现自动化办公------爬取小说天堂所有小说
  8. php pwuj 挂马,网站挂马原理及实战
  9. Material Desion之Shape与shadow原理实现
  10. 文件 MD5 SHA1 SHA256 SHA512 校验码生成工具 V1.3
  11. R语言绘图--高级图形之Circos
  12. ”什么?穆冉不敢相信地看向穆大海
  13. 使用 Hyper-V 安装 Linux
  14. 面向Python开发人员的综合置信区间全面理解
  15. linux中etc目录的英文全称
  16. 利用茉莉机器人接口开发一个简单的安卓机器人app
  17. MSRA前端实习面经
  18. Zhong__Python reduce()
  19. (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80)
  20. 《屌丝:庶民的文化胜利》的精彩评论

热门文章

  1. 一个有趣的avs编码器(注意,是avs,而不是avs2噢)
  2. solidworks里面的扭簧安装
  3. vector的erase函数
  4. pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed o
  5. 关于AssertionError: You must specify a action space.
  6. prim 最小生成树算法 java实现
  7. css嵌入样式元素,css伪元素怎么用在内嵌样式?
  8. 特立独行的ReentrantLock
  9. note3升级android,三星Galaxy Note3的手机系统是什么?能升级安卓4.3吗?
  10. TypeError: Cannot handle this data type: (1, 1, 128), |u1