资源描述:
《置换加密、解密的C++实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息安全技术实验报告———置换加密、解密的C++实现计算机学院2008级12班学号:53081224姓名:胡守峰第5页共5页置换加密、解密的C++实现【我的目的】编写置换加密解密算法的C++实现。【我的加密、解密思想】第一步,输入一个加密整数。第二步,输入加密明文string_old,长度为size。第三步,进行加密,结果保存在string_encrytion中。第四步,解密,结果保存在string_decrytion中。第五步,输出加密后的密文。第六步,输出对加密前的明文和加密并解密后的密文,进行比较,判断两个数组是否一致,从而得知算法是否正确。【我的
2、实验】1、置换加密、解密算法的C++实现(可以在VC6.0上运行):#includeusingnamespacestd;#defineMAXLENGTH500//明文最大长度intsize=0;//明文实际长度charstring_old[MAXLENGTH];charstring_encrytion[MAXLENGTH];charstring_decrytion[MAXLENGTH];intuint;//保存置换长度整数charstring_low[]={'a','b','c','d','e','f','g','h','i','j'
3、,'k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};charstring_upper[]={'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'};///////////////////////////////////////////////////////////加密算法voidexchange(){cout<<"请输入置
4、换长度整数:";cin>>uint;cout<<"请输入明文字符串(由52个大小写字母组成,以#结束)"<>string_old[i];if(string_old[i]=='#')break;}size=i;for(i=0;i='A'&&string_old[i]<='Z'){//判断是否为大写字母,对大写字母进行加密for(intj=0;j<26;j++)第5页共5页if(string_old[i]==string_upp
5、er[j]){j=j-uint;if(j<0)j+=26;string_encrytion[i]=string_upper[j];break;}}else{if(string_old[i]>='a'&&string_old[i]<='z'){//对小写字母进行加密for(intj=0;j<26;j++)if(string_old[i]==string_low[j]){j=j-uint;if(j<0)j+=26;string_encrytion[i]=string_low[j];break;}}elsestring_encrytion[i]=string_
6、old[i];}}}//////////////////////////////////////////////////////////////////解密算法voidunexchange(){for(inti=0;i='A'&&string_encrytion[i]<='Z'){//对大写字母进行解密for(intj=0;j<26;j++)if(string_encrytion[i]==string_upper[j]){j=(j+uint)%26;string_decrytion[i]
7、=string_upper[j];break;}}else{if(string_encrytion[i]>='a'&&string_encrytion[i]<='z'){//对小些字母进行解密for(intj=0;j<26;j++)if(string_encrytion[i]==string_low[j]){j=(j+uint)%26;string_decrytion[i]=string_low[j];break;}}else第5页共5页string_decrytion[i]=string_encrytion[i];}}}voidmain(void){e
8、xchange();unexchange();cout<<"加密后的密文:";f