DES密碼的C 實現

2021-08-09 19:08:55 字數 1695 閱讀 9039

//des密碼

/*理解演算法最重要,最好自己動手實現試試看,可以使用mfc寫乙個簡單的互動介面*/

#include#include#include#define bit bool

using namespace std;

bit k[16][48];

int

//初置換

ip[64] = ,

//末置換

fp[64] = ,

//金鑰置換

kp[56] = ,

//金鑰位移

km[16] = ,

//壓縮置換

cp[48] = ,

//擴充套件置換

ep[48] = ,

//s盒

s_box[8][4][16] = ,

, ,

},

//s2

, ,

, },

//s3

, ,

, },

//s4

, ,

, },

//s5

, ,

, },

//s6

, ,

, },

//s7

, ,

, },

//s8

, ,

, }},

//p盒

pp[32] = ;

void initial_permutation(bit pt[64])

void final_permutation(bit pt[64])

void p_box_permutation(bit x[32])

void generate_k(bit sk[64])

return ;

}

void work(bit l[32],bit r[32],bit key[48],int cnt)

p_box_permutation(res);

for(i = 0;i < 32;i++)

l[i] ^= res[i];

if (cnt == 15) return ;

bit temp[32];

memcpy(temp,l,sizeof(temp));

memcpy(l,r,sizeof(temp));

memcpy(r,temp,sizeof(temp));

return ;

}

void des_enc(char txt[10],char enc[10])

void des_dec(char txt[10],char dec[10])

void des_e()

fclose(o);

fclose(p);

return ;

}

void des_d()

fclose(o);

fclose(p);

return ;

}

int main()

}

密碼學 DES密碼的C 實現

1 des密碼2 理解演算法最重要,最好自己動手實現試試看,可以使用mfc寫乙個簡單的互動介面 3 4 include5 include6 include 78 define bit bool 910 using namespace std 1112 bit k 16 48 1314 int15 初...

C 實現DES加密

1.定義金鑰變數key 2.定義子金鑰儲存變數subkey 3.將pc 1,pc 2,ip,ip 1,e盒和s盒,p,加密輪資料新建陣列變數儲存 4.定義chartobitset方法進行字串到二進位制數的轉換 5.定義exec函式對資料進行進行擴充套件置換,異或,查s盒置換,p置換的初始操作 6.定...

DES演算法的c語言實現

網上找了一部分 稍微修改了下就可以使用了。已上傳github 原理 des演算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的金鑰也是64位 實際用到了56位,第8 16 24 32 40 48 56 64位是校驗位,使得每個金鑰都有奇數個1 其演算法主要分為兩步 1 初始置換 其功能是把輸...