freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux系統(tǒng)下3des加密算法實現(xiàn)的畢業(yè)論文(已改無錯字)

2023-07-23 12:09:22 本頁面
  

【正文】 , 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7}。// 擴展置換Econst static char E_Table[48] = { 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1}。// S盒const static char S_Box[8][4][16] = { // S1 14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, // S2 15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9, // S3 10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12, // S4 7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14, // S5 2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14, 11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3, // S6 12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13, // S7 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12, // S8 13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11}。// 置換函數(shù)Pconst static char P_Table[32] = { 16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10, 2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25}。// 末置換IP1const static char IPR_Table[64] = { 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25}。方法函數(shù)部分: //功能:產(chǎn)生16個28位的key //參數(shù):源8位的字符串(key),存放key的序號01 //結(jié)果:函數(shù)將調(diào)用private CreateSubKey將結(jié)果存于char SubKeys[keyN][16][48]void yxyDES2::InitializeKey(char* srcBytes,unsigned int keyN){ //convert 8 charbytes key to 64 binarybits char sz_64key[64] = {0}。 Bytes2Bits(srcBytes,sz_64key,64)。 //PC 1 char sz_56key[56] = {0}。 for(int k=0。k56。k++) { sz_56key[k] = sz_64key[PC1_Table[k]1]。 } CreateSubKey(sz_56key,keyN)。}//功能:生成子密鑰 //參數(shù):經(jīng)過PC1變換的56位二進制字符串,生成的szSubKeys編號01 //結(jié)果:將保存于char szSubKeys[16][48]void yxyDES2::CreateSubKey(char* sz_56key,unsigned int keyN){ char szTmpL[28] = {0}。 char szTmpR[28] = {0}。 char szCi[28] = {0}。 char szDi[28] = {0}。 memcpy(szTmpL,sz_56key,28)。 memcpy(szTmpR,sz_56key + 28,28)。 for(int i=0。i16。i++) { //shift to left //Left 28 bits memcpy(szCi,szTmpL + Shift_Table[i],28 Shift_Table[i])。 memcpy(szCi + 28 Shift_Table[i],szTmpL,Shift_Table[i])。 //Right 28 bits memcpy(szDi,szTmpR + Shift_Table[i],28 Shift_Table[i])。 memcpy(szDi + 28 Shift_Table[i],szTmpR,Shift_Table[i])。 //permuted choice 48 bits key char szTmp56[56] = {0}。 memcpy(szTmp56,szCi,28)。 memcpy(szTmp56 + 28,szDi,28)。 for(int j=0。j48。j++) { szSubKeys[keyN][i][j] = szTmp56[PC2_Table[j]1]。 } //Evaluate new szTmpL and szTmpR memcpy(szTmpL,szCi,28)。 memcpy(szTmpR,szDi,28)。 }}//功能:加密8位字符串 //參數(shù):8位字符串,使用Key的序號01 //結(jié)果:函數(shù)將加密后結(jié)果存放于private szCiphertext[16] // 用戶通過屬性Ciphertext得到void yxyDES2::EncryptData(char* _srcBytes,unsigned int keyN){ char szSrcBits[64] = {0}。 char sz_IP[64] = {0}。 char sz_Li[32] = {0}。 char sz_Ri[32] = {0}。 char sz_Final64[64] = {0}。 Bytes2Bits(_srcBytes,szSrcBits,64)。 //IP InitialPermuteData(szSrcBits,sz_IP)。 memcpy(sz_Li,sz_IP,32)。 memcpy(sz_Ri,sz_IP + 32,32)。 for(int i=0。i16。i++) { FunctionF(sz_Li,sz_Ri,i,keyN)。 } //so D=LR memcpy(sz_Final64,sz_Ri,32)。 memcpy(sz_Final64 + 32,sz_Li,32)。 //~IP for(int j=0。j64。j++) { szCiphertextRaw[j] = sz_Final64[IPR_Table[j]1]。 } Bits2Bytes(szCiphertextInBytes,szCiphertextRaw,64)。}//功能:解密制字符串 //參數(shù):字符串,使用Key的序號01 //結(jié)果:函數(shù)將解密候結(jié)果存放于private szPlaintext[8] // 用戶通過屬性Plaintext得到void yxyDES2::DecryptData(char* _srcBytes,unsigned int keyN){ char szSrcBits[64] = {0}。 char sz_IP[64] = {0}。 char sz_Li[32] = {0}。 char sz_Ri[32] = {0}。 char sz_Final64[64] = {0}。 Bytes2Bits(_srcBytes,szSrcBits,64)。 //IP return is sz_IP InitialPermuteData(szSrcBits,sz_IP)。 //divide the 64 bits data to two parts memcpy(sz_Ri,sz_IP,32)。 //exchange L to R memcpy(sz_Li,sz_IP + 32,32)。 //exchange R to L //16 rounds F and xor and exchange for(int i=0。i16。i++) { FunctionF(sz_Ri,sz_Li,15i,keyN)。 } memcpy(sz
點擊復制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1