密钥短语密码实验报告.docxVIP

  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文档。上传文档
查看更多
置换密码的实验报告一、实验目的 通过实验熟练掌握置换密码算法,学会置换密码算法程序设计。 二、实验环境 软件工具:Visual C++ 6.0 操作系统:windows xp 三、实验思想 下面是密钥短语密码的实现步骤:1. 选择密钥并删除重复字母.2. 在明文的字母表下方从左往右写下处理的后的密钥,然后再写剩余的字母即得密文字母表.四、实验数据(源代码) #include iostream#include string.h#include ctype.husing namespace std;/*加密流程:1.输入明文2.用户输入密码句子;3.由密码句子产生代换字符表4.产生密文解密流程:1.输入密文2.用户输入密码句子;3.产生代换字符表4.产生明文*/#define MING_WEN 1000//设明文长度最大为1000char mingwen[MING_WEN]; // 存放明文char miwen[MING_WEN]; // 存放密文char miyuejvzi[100];//密钥句子char alphabeta[27];//代换字母表string str=abcdefghijklmnopqrstuvwxyz;void generate_alphabeta();//产生代换字符表void generate_miwen();//产生密文void generate_mingwen();//产生明文int main() { int choice; cout古典密码之置换密码.endl; cout你想完成什么操作?endl; cout加密请输入数字1,解密请输入数字2,退出请输入其他键.endl; cinchoice; cin.clear(); cin.sync(); if(choice==1) { cout请输入你想加密的字符串(请不要超出MING_WEN个字符,不能输入中文):endl; cin.getline(mingwen,MING_WEN); cout你输入的明文是:mingwenendl; int mingwen_length=strlen(mingwen);//明文长度 generate_alphabeta( );//产生代换字符表 generate_miwen( ); } if(choice==2) { cout请输入你想解密的字符串:endl; cin.getline(miwen,MING_WEN); cout你输入的密文是:miwenendl; int miwen_length=strlen(miwen);//密文长度 generate_alphabeta( );//产生代换字符表 generate_mingwen(); } } void generate_alphabeta( )//产生代换字符表 { int i,j; cout请输入密钥句子,至少为1个字符,最多100个字符,且第一个字符必须是小写字母:endl; cin.getline(miyuejvzi,100);//输入的密钥句子,至少为1个字符,最多100个字符,且第一个必须为字母 coutmiyuejvziendl; int length=strlen(miyuejvzi); /* cout密钥句子的长度为:lengthendl;*/ int pos=0;//指示填充位置 int tag=1;// alphabeta[0] =miyuejvzi[0];//填充第0个位置 for(i=1;ilength;i++) { if (isalpha(miyuejvzi[i])!=0) //是字母 { tag=1; for (j=0;j=pos;j++) { if(alphabeta[j]==miyuejvzi[i])//alphabet表中已经存在字母miyuejvzi[i] { tag=0; break; } } if(tag==1) alphabeta[++pos]=miyuejvzi[i]; } } /* cout代换字母表:endl; coutalphabetaendl; cout已产生的字母表中字符个数pos+1endl; */ for(i=0;i26;i++) //把英文字母表中还没有出现在代换字母表中的字母存入代换字母表 { tag=1; for (j=0;j=pos;j++) { if(alphabeta[j]==str[i])//alphabet表中已经存在英文字母表中的第i个字母 { tag=0; break; } } if(tag==1) alphabeta[++pos]=str[i]; } cout原始字母表为strendl; cout代换密码表为alphabetaendl;} void generate_miwen

文档评论(0)

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

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

1亿VIP精品文档

相关文档