欢迎来到天天文库
浏览记录
ID:9318099
大小:123.00 KB
页数:4页
时间:2018-04-27
《单表置换密码的c++代码实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//单置换密码的编程实现(C++)//作者信息:////本程序使用方法:需要在本程序所在的文件夹创建一个"密码学.txt"文档,//该程序所需要的数据全部由该文档提供,然后运行即可得到结果,如需要修改数据,必须从文档中人工修改//文档格式的要求:文档总共包含两行。第一行由一个1或2的数字和一个字符串组成,数字1代表加密,2代表解密,字符串表示密钥//第二行仅包含一个字符串,这个字符串是需要加密或解密的内容。//该程序运行结果直接由控制台输出运行结果:#include#include#includeusingnamespacest
2、d;ifstreamin("密码学.txt");voidJiaMi(charZhiHuan[]);//加密函数voidJieMi(charZhiHuan[]);//解密函数voidsetZhiHuan(charZhiHuan[],charfanZhiHuanBiao[]);//设置置换表函数intmain(){intm;//确定是加密或解密?加密为1,解密为2charZhiHuanBiao['z'+1];//正向置换表,加密时用charfanZhiHuanBiao['Z'+1];//反向置换表,解密时用cout<<"加密按输入1,解密输入2"<>m;//读入mse
3、tZhiHuan(ZhiHuanBiao,fanZhiHuanBiao);//设置置换表switch(m)//判断m值,执行相应的功能{case1:JiaMi(ZhiHuanBiao);break;case2:JieMi(fanZhiHuanBiao);break;default:break;}return0;}voidJiaMi(charZhiHuan[])//加密{stringMingWen;//保存明文cout<4、l;for(inti=0;i='a'&&MingWen[i]<='z')cout<5、en.length();i++)//直接利用反置换表输出明文{if(MiWen[i]>='A'&&MiWen[i]<='Z')cout<6、='A'&&s[i]<='Z'){for(intj=0;j7、用密钥得到置换表{if(i<'a'+s1.length())//前面直接用s1代替{ZhiHuanBiao[i]=s1[i-'a'];}else//后面将剩下的"贴"上去{for(intj='a';j<'a'+s1.length();j++){if(ch==ZhiHuanBiao[j]){ch++;j='a';//每次都从头开始搜索continue;}}ZhiHuanBiao[i]=ch;ch++;}cout<
4、l;for(inti=0;i='a'&&MingWen[i]<='z')cout<5、en.length();i++)//直接利用反置换表输出明文{if(MiWen[i]>='A'&&MiWen[i]<='Z')cout<6、='A'&&s[i]<='Z'){for(intj=0;j7、用密钥得到置换表{if(i<'a'+s1.length())//前面直接用s1代替{ZhiHuanBiao[i]=s1[i-'a'];}else//后面将剩下的"贴"上去{for(intj='a';j<'a'+s1.length();j++){if(ch==ZhiHuanBiao[j]){ch++;j='a';//每次都从头开始搜索continue;}}ZhiHuanBiao[i]=ch;ch++;}cout<
5、en.length();i++)//直接利用反置换表输出明文{if(MiWen[i]>='A'&&MiWen[i]<='Z')cout<6、='A'&&s[i]<='Z'){for(intj=0;j7、用密钥得到置换表{if(i<'a'+s1.length())//前面直接用s1代替{ZhiHuanBiao[i]=s1[i-'a'];}else//后面将剩下的"贴"上去{for(intj='a';j<'a'+s1.length();j++){if(ch==ZhiHuanBiao[j]){ch++;j='a';//每次都从头开始搜索continue;}}ZhiHuanBiao[i]=ch;ch++;}cout<
6、='A'&&s[i]<='Z'){for(intj=0;j7、用密钥得到置换表{if(i<'a'+s1.length())//前面直接用s1代替{ZhiHuanBiao[i]=s1[i-'a'];}else//后面将剩下的"贴"上去{for(intj='a';j<'a'+s1.length();j++){if(ch==ZhiHuanBiao[j]){ch++;j='a';//每次都从头开始搜索continue;}}ZhiHuanBiao[i]=ch;ch++;}cout<
7、用密钥得到置换表{if(i<'a'+s1.length())//前面直接用s1代替{ZhiHuanBiao[i]=s1[i-'a'];}else//后面将剩下的"贴"上去{for(intj='a';j<'a'+s1.length();j++){if(ch==ZhiHuanBiao[j]){ch++;j='a';//每次都从头开始搜索continue;}}ZhiHuanBiao[i]=ch;ch++;}cout<
此文档下载收益归作者所有