凯撒凯撒密码实验.doc

凯撒密码  时间:2021-01-24  阅读:()

凯撒密码实验

一、实验目的

通过实验熟练掌握凯撒密码算法学会凯撒密码算法程序设计。 二、实验环境

软件工具:Visual C++ 6.0

操作系统:windows xp

三、实验思想

在密码学中存在着各种各样的置换方式但所有不同的置换方式都包含2个相同的元素。密钥和协议(算法) 。凯撒密码的密钥是3算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解.发送方和接收方很容易事先商量好一个密钥然后通过密钥从明文中生成密文 即是敌人若获取密文通过密文直接猜测其代表的意义在实践中是不可能的。凯撒密码的加密算法极其简单。其加密过程如下:

在这里我们做此约定:明文记为m密文记为c加密变换记为E(k1,m) (其中k1为密钥) 解密变换记为D(k2,m) (k2为解密密钥) (在这里不妨假设k1=k2,记为k) 。凯撒密码的加密过程可记为如下一个变换:c?m+k mod n (其中n为基本字符个数) 同样解密过程可表示为:m?c+k mod n (其中n为基本字符个数) 四、实验数据(源代码)

#include <stdio.h>

#include <stdlib.h>

#include <string.h>void table(char *keyword) //筛选密钥(去重复去空格)

{

int i, j,k;for(i=0;*(keyword+i) !=' \0' ; i++)

{for(j=i ;*(keyword+j) !=' \0' ;j++)

{if(i !=j)if(*(keyword+i)==*(keyword+j) | |*(keyword+j)==' ' ){for(k=j;*(keyword+k) !=' \0' ;k++)

*(keyword+k)=*(keyword+k+1) ;j--;

}

}

}

}void newTab(char *keyword) //生成密钥表

{char ch;int i ;int t;for(t=0;*(keyword+t) !=' \0' ;t++) ;for(ch='a' ;ch<=' z' ;ch++)

{for(i=0;*(keyword+i) !=ch; i++)

{if(*(keyword+i)==' \0' )

{

*(keyword+t)=ch;t++;break;

}

}

}

*(keyword+t)=' \0' ;

}char *Ciphertext(char *keyword,char *Plaintext) //按密码表加密{char ch;int i, j;for(i=0;*(Plaintext+i) !=' \0' ; i++)

{for(ch='a' , j=0;ch<=' z' ;ch++, j++)

{if(*(Plaintext+i)==ch)

{

*(Plaintext+i)=*(keyword+j) ;break;

}

}

}return Plaintext;

}char *Decrypt(char *keyword,char *Plaintext) //解密{char ch;int i, j;for(i=0;*(Plaintext+i) !=' \0' ; i++)

{for(ch='a' , j=0;*(keyword+j) !=' \0' ;ch++, j++)

{if(*(Plaintext+i)==*(keyword+j) )

{

*(Plaintext+i)=ch;break;

}

}

}return Plaintext;

}void main()

{char *keyword,*Plaintext,*tmp=NULL;keyword=(char*)malloc(sizeof(char) ) ;

Plaintext=(char*)malloc(sizeof(char) ) ;

printf("Input key word:") ; //输入欲用密钥gets(keyword) ;printf("Input Plaintext:") ; //输入要转换的明文gets(Plaintext) ;table(keyword) ; //去空格去重复newTab(keyword) ; //生成密码表tmp=Ciphertext(keyword,Plaintext) ; //对应着密码表生成密文puts(tmp) ; //输出密文puts(Decrypt(keyword, tmp) ) ; //解密输出

}

五、实验心得

通过本次实验将凯撒密码算法的理论应用到实践中来利用C++编程实现了凯撒密码算法的加密过程将理论与实践结合起来加深了课本上凯撒密码算法理论的理解。

欢迎您阅读该资料希望该资料能给您的学习和生活带来帮助如果您还了解更多的相关知识也欢迎您分享出来让我们大家能共同进步、共同成长。

欢迎使用“凯撒密码实验”使用该文档doc格式如大家有其它疑问或者新的见解欢迎大家互相交流、互相进步。

提速啦(900元/月),杭州BGP E5-2665/89*2 32核 48G 100G防御

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑提速啦的市场定位提速啦主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。提速啦的售后保证提速啦退款 通过于合作商的友好协商,云服务器提供3天内全额退款,超过3天不退款 物理机部分支持当天全额退款提速啦提现 充...

RAKsmart(年79元),云服务器年付套餐汇总 - 香港 美国 日本云服务器

RAKsmart 商家从原本只有专注于独立服务器后看到产品线比较单薄,后来陆续有增加站群服务器、高防服务器、VPS主机,以及现在也有在新增云服务器、裸机云服务器等等。机房也有增加到拥有洛杉矶、圣何塞、日本、韩国、中国香港等多个机房。在年前也有介绍到RAKsmart商家有提供年付129元的云服务器套餐,年后我们看到居然再次刷新年付云服务器低价格。我们看到云服务器低至年79元,如果有需要便宜云服务器的...

digital-vm:VPS低至$4/月,服务器$80/月,10Gbps超大带宽,不限流量,机房可选:日本新加坡美国英国西班牙荷兰挪威丹麦

digital-vm,这家注册在罗马尼亚的公司在国内应该有不少人比较熟悉了,主要提供VPS业务,最高10Gbps带宽,还不限制流量,而且还有日本、新加坡、美国洛杉矶、英国、西班牙、荷兰、挪威、丹麦这些可选数据中心。2020年,digital-vm新增了“独立服务器”业务,暂时只限“日本”、“新加坡”机房,最高也是支持10Gbps带宽... 官方网站:https://digital-vm.co...

凯撒密码为你推荐
软银支付雅虎在05年就被阿里巴巴收购了,为什么现在又会出现马云收回支付宝产权,雅虎和软银不高兴的情况呢?浏览器哪个好什么浏览器最好?天气预报哪个好用哪个最准确天气预报的软件哪个比较准小说软件哪个好用免费现在看小说用什么软件好?二手车网站哪个好想买台二手车,哪个二手车网站靠谱苹果手机助手哪个好iphone有什么比较好用的软件!网页传奇哪个好玩传奇网页游戏哪个好玩的最新相关信息无纺布和熔喷布口罩哪个好大雾天气带什么样的口罩最好红茶和绿茶哪个好红茶和绿茶哪个更好?雅思和托福哪个好考托福好考还是雅思好考哇?
高防服务器租用 已经备案域名 net主机 罗马假日广场 免费申请网页 a2hosting siteground webhosting info域名 网站实时监控 最好看的qq空间 华为4核 灵动鬼影 linux空间 工作站服务器 河南移动网 流媒体加速 空间购买 宏讯 中国联通宽带测试 更多