基于计算机信息安全学的几种的算法实验.doc

基于计算机信息安全学的几种的算法实验.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于计算机信息安全学的几种的算法实验

基于计算机信息安全学的几种算法实验 一、天书加密的应用 要求:自己准备一圆形棒(比如笔筒),直径自定,在其上缠绕一张长条形白色纸条,按天书加密的算法思路,将下面的英文字母依次写上去,然后打开纸条,按纸条从上到下依次写出密文。 actually you are is but a dog as a dog,black eyes white colour and the beijing and lineages to you will have a good dog. 程序设计如下: #includeiostream using namespace std; #define M 1000 #define N 100 int main() { char a[M],b[N][5]; int i,j,k,l,m,n,t,f=0; cout请输入要加密的明文,以#符号为结束标志:endl; for(i=0;iM;i++) { cina[i]; if(a[i]==#) break; } m=i/5; for(t=0;tm;t++) { for(n=0;n5fi;n++) { b[t][n]=a[f]; f++; } } cout经过天书加密后的密为:endl; for(k=0;k5;k++) for(l=0;lm;l++) coutb[l][k]; coutendl; return 0; } 二、单表代换密码的应用 设a—z的编号是1-26,采用Kaesar密码方案,明文P=“Peking university”,计算出密文C。 方法一: 程序设计如下: #includeiostream using namespace std; #define M 100 //定义最大值 int main () { char a[27]=abcdefghijklmnopqrstuvwxyz, b[M]; int i,j,k; cout请输入要加密的明文:endl; for(i=0;iM;i++) { cinb[i]; if(b[i]==#) break; //以#为输入的终止条件 else continue; } coutendl; cout经过kaesar加密后到密文为:endl; for(k=0;ki;k++) { for(j=0;j26;j++) { if(b[k]==#) break; else if(b[k]==a[j]) { coutchar(a[(j+3)]-32); //这里的char不能省略,否则输出错误 } } } coutendl; return 0; } 方法二: 程序设计如下: #includeiostream using namespace std; int main () {char c; while((c=getchar())!=\0) {if((c=ac=z)||(c=Ac=Z)) {c=c+3; if((cZcZ+3)||cz) c=c-26; } coutc; } coutendl; return 0; } 三、多字母代换密码的应用 Hill加密算法实验,设a-z的编号为0-25,明文P=”Hill”。密码k=(1 2)(3 4),用Hill加密算法求出密文C。 程序设计如下: #include iostream using namespace std; #define M 100 //定义最大值 int main () { int key[2][2],i,j,k; char word[M]; int word1[M]; char word2[M]; int num; char s[26]={A,B,C,D,E,F,G,H,I,J,K, L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}; cout输入需要加密的明文(偶数位):endl; cinword; num=strlen(word); //确定输入字母的总长度 while(num%2!=0) { cout输入有误,请重新输入需要加密的明文:endl; cinword; num=strlen(word); } cout请输入需要加密的密钥矩阵(0--25):endl; cinkey[0][0]; cinkey[0][1]; cinkey[1][0]; cinkey[1][1]; //输入一个两行两列的密钥距阵 while(key[2][2]25) {

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档