单表代换密码.doc

单表代换密码.doc

ID:57256049

大小:74.00 KB

页数:5页

时间:2020-08-07

单表代换密码.doc_第1页
单表代换密码.doc_第2页
单表代换密码.doc_第3页
单表代换密码.doc_第4页
单表代换密码.doc_第5页
资源描述:

《单表代换密码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告姓名:1111学号:班级:日期:1111古典密码(单表代换密码)一、实验环境1.硬件配置:处理器:Corei5M450@2.40GHZ,内存2GB,主硬盘320G2.使用软件:(1)操作系统:win7(2)软件工具:MicrosoftVisualC++6.0二、实验设计的相关概念或基本原理1.单表代换密码的基本原理:对字母表中的每一个字母用别的字母代换形成密文。明文和密文代换的规则可以是先任选一个易记的单词或短语或一句话作为密钥放在前面,然后从A到X的顺序中剔除前面出现过的字母后依次补在后面,形成代换表。三、实验

2、内容根据实验原理的介绍,你先选取一个密钥,创建一个明文信息,编写实现程序,实现加密和解密的操作。实验流程图:一、实验总结分析关键代码:1.产生代换表:voidgenerate_alphabeta()//产生代换表{inti,j;cout<<"请先输入密钥句子,至少为1个字符,最多100个字符,且第一个字符必须是小写字母:"<>miyue;//输入的密钥句子,至少为1个字符,最多100个字符,且第一个必须为字母cout<

3、t<<"密钥句子的长度为:"<

4、ue[i];}}for(i=0;i<26;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<<"原始字母表为"<

5、//加密{intpos;//alphabeta[0]是序号为0的字母a的密文,alphabeta[1]是序号为1的字母的密文...,依次类推for(inti=strlen(source);i>=0;i--){if(islower(source[i]))//假如当前字符是小写字母{pos=source[i]-'a';//计算出当前字母在字母表中的序号cipher[i]=alphabeta[pos];}else//不是字母,原样复制cipher[i]=source[i];}cout<<"密文为:"<

6、;return1;}3.解密算法intdeciphring()//解密{for(inti=strlen(cipher);i>=0;i--){if(islower(cipher[i]))//假如当前字符是小写字母{for(intj=0;j<26;j++){if(cipher[i]==alphabeta[j])//当前密文字符,在代换字符表的第j个位置,在其明文字符为str[j];{source[i]=str[j];break;}}}else//不是字母,原样复制source[i]=cipher[i];}cout<

7、ce<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。