欢迎来到天天文库
浏览记录
ID:31264438
大小:96.08 KB
页数:13页
时间:2019-01-07
《基于c的des加密解密算法实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1■头文件:DES.h设计方法:类的共有接口只设计一个,即加密解密函数,用一个bool参数区分是加密还是解密。其他像读文件,写文件,加密变换函数等等设置为私有涉及内容:文件操作,STL向量,数制变换,位操作及函数设计等等。代码:#include#inelude#include#inelude#inelude#ineludeusingnamespacestd;*****************************
2、*******************************************//***********************************************************************/*DES类声明TclassDES{public:DES();/*构造函数*/voidencrypt(boolflag=true);/*加解密函数*/private:stringplaintextFilePath_;/*明文文件路径*/stringciphertextFilePath_;/*密文文
3、件路径*/stringkeyFilename_;/*密钥文件路径*/stringplaintext」/*明文存储*/stringciphertext_;/*密文存储*/stringkey_j/*密钥存储*/vector>subkey_;/*子密钥存储*/voidgetsubkeyj);/*计算子密钥*/voidsetPlaintextFilePath_();/*设置明文路径*/voidsetCiphertextFilePath_();/*设置密文路径*/voidsetKeyFilePathJ);/*设
4、置密钥路径*/stringreadData_(stringfilename);/*读取文件*/voidsaveData_(stringfilename,stringdata);/*保存文件*/vectorstring2bit_(stringstr);/*string类型转为ASCII二进制数*/stringbit2string_(vectorv);/*ASCII二进制数转为string类型*/vectorint2bit_(vectorveclnt);/*整形数0-15化为二进制*/ve
5、ctorvecXor_(vectorvint>vL,vectorvR);/*向量异或*/vectorleftlterMove_(vectormovVecJntloopStep);/*数据左移loopStep位*/vectorvecReplace_(vectorv,constunsignedintvArray[]);/*向暈数据按vArray中数据重排序=7vectorvecMerge_(vectorvL,vectorvR);/*合并两个
6、向量*/vectorf_(vectorvecR,vectorvint>vecKey);/*f函数*/vectorS_(vectorvecRKey);/*S盒函数*/***********************************************************************/*变换矩阵*/staticconstunsignedintPC_1_[56];staticconstunsignedintPC_2_[48];staticconstunsignedi
7、ntL00P_[16];staticconstunsignedintIP_[64];staticconstunsignedintIPR_[64];staticconstunsignedintSBOX_⑻⑷[16];staticconstunsignedintE_[48];staticconstunsignedintP_[32];************************************************************************/2.DES加密代码创建基于DES加解密的函数,以备后面
8、的代码调用。代码:include“DES.h”*//***********************************************************************/*静态常量放在这里*/constunsignedintDES::IP_[64]={5&50,4
此文档下载收益归作者所有