資源描述:
《基于c的des加密解密算法實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、1■頭文件:DES.h設(shè)計(jì)方法:類的共有接口只設(shè)計(jì)一個,即加密解密函數(shù),用一個bool參數(shù)區(qū)分是加密還是解密。其他像讀文件,寫文件,加密變換函數(shù)等等設(shè)置為私有涉及內(nèi)容:文件操作,STL向量,數(shù)制變換,位操作及函數(shù)設(shè)計(jì)等等。代碼:#include#inelude#include#inelude#inelude#ineludeusingnamespacestd;*****************************
2、*******************************************//***********************************************************************/*DES類聲明TclassDES{public:DES();/*構(gòu)造函數(shù)*/voidencrypt(boolflag=true);/*加解密函數(shù)*/private:stringplaintextFilePath_;/*明文文件路徑*/stringciphertextFilePath_;/*密文文
3、件路徑*/stringkeyFilename_;/*密鑰文件路徑*/stringplaintext」/*明文存儲*/stringciphertext_;/*密文存儲*/stringkey_j/*密鑰存儲*/vector>subkey_;/*子密鑰存儲*/voidgetsubkeyj);/*計(jì)算子密鑰*/voidsetPlaintextFilePath_();/*設(shè)置明文路徑*/voidsetCiphertextFilePath_();/*設(shè)置密文路徑*/voidsetKeyFilePathJ);/*設(shè)
4、置密鑰路徑*/stringreadData_(stringfilename);/*讀取文件*/voidsaveData_(stringfilename,stringdata);/*保存文件*/vectorstring2bit_(stringstr);/*string類型轉(zhuǎn)為ASCII二進(jìn)制數(shù)*/stringbit2string_(vectorv);/*ASCII二進(jìn)制數(shù)轉(zhuǎn)為string類型*/vectorint2bit_(vectorveclnt);/*整形數(shù)0-15化為二進(jìn)制*/ve
5、ctorvecXor_(vectorvint>vL,vectorvR);/*向量異或*/vectorleftlterMove_(vectormovVecJntloopStep);/*數(shù)據(jù)左移loopStep位*/vectorvecReplace_(vectorv,constunsignedintvArray[]);/*向暈數(shù)據(jù)按vArray中數(shù)據(jù)重排序=7vectorvecMerge_(vectorvL,vectorvR);/*合并兩個
6、向量*/vectorf_(vectorvecR,vectorvint>vecKey);/*f函數(shù)*/vectorS_(vectorvecRKey);/*S盒函數(shù)*/***********************************************************************/*變換矩陣*/staticconstunsignedintPC_1_[56];staticconstunsignedintPC_2_[48];staticconstunsignedi
7、ntL00P_[16];staticconstunsignedintIP_[64];staticconstunsignedintIPR_[64];staticconstunsignedintSBOX_⑻⑷[16];staticconstunsignedintE_[48];staticconstunsignedintP_[32];************************************************************************/2.DES加密代碼創(chuàng)建基于DES加解密的函數(shù),以備后面
8、的代碼調(diào)用。代碼:include“DES.h”*//***********************************************************************/*靜態(tài)常量放在這里*/constunsignedintDES::IP_[64]={5&50,4