密码学实验之凯撒密码和维吉尼亚密码的加解密.docVIP

密码学实验之凯撒密码和维吉尼亚密码的加解密.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
凯撒密码的加解密 源代码: #includestdafx.h #include stdio.h #include string.h int main() { char s[100],c; int i,p,d,e; printf(请选择 : A.加密 B.解密 Q.退出\n); scanf(%c,c); if(c==a||c==A) { printf(输入明文:); scanf(%s,s); p=strlen(s); printf(请设置偏移量:); scanf(%d,d); for(i=0;ip;i++) { if(s[i]=a s[i]=z) s[i]=(s[i]-a+d)%26+a; else if(s[i]=A s[i]=Z) s[i]=(s[i]-A+d)%26+A; else s[i]=s[i]+d; } printf(%s,s); printf(\n\n\n); } if(c==b||c==B) { printf(请输入密文:); scanf(%s,s); p=strlen(s); printf(请输入加密的偏移变量:); scanf(%d,d); for(i=0;ip;i++) { if(s[i]=a s[i]=z) { e=s[i]-a-d; if(e=0) s[i]=(e+26)%26+a; else s[i]=e%26+a; } else if(s[i]=A s[i]=Z) { e=s[i]-A-d; if(e0) s[i]=(e+26)%26+A; else s[i]=e%26+A; } else s[i]=s[i]-d; } printf(%s,s); printf(\n\n); } if(c==q||c==Q) return 0; return 0; } 运行结果是: 维吉尼亚密码的加解密 源代码: #include stdafx.h #includeiostream using namespace std; #define MINCHAR 32 #define CHARSUM 94 char table[CHARSUM][CHARSUM]; bool Init(); bool Encode(char* key, char* source, char* dest); bool Dncode(char* key, char* source, char* dest); int main() { if(!Init()) { cout 初始化错误! endl; return 1; } char key[256]; char str1[256]; char str2[256]; int operation; while(1) { do { cout 请选择一个操作:1. 加密; 2. 解密; -1. 退出\n; cin operation; }while(operation != -1 operation != 1 operation != 2); if(operation == -1) return 0; else if(operation == 1)//加密 { cout 请输入密钥:; cin key; cout 请输入待加密字符串:; cin str1; Encode(key, str1, str2); cout 加密后的字符串: str2 endl; } else if(operation == 2)//解密 { cout 请输入密钥:; cin key; cout 请输入待解密字符串:; cin str1; Dncode(key, str1, str2); cout 解密后的字符串: str2 endl; } cout endl; } return 0; } // 初始化维吉尼亚方阵 bool Init() { int i, j; for(i = 0; i CHARSUM; i++) { for(j = 0; j CHARSUM; j++) { table[i][j] = MINCHAR + (i + j) % CHARSUM; } } return true; }

文档评论(0)

kxiachiq + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档