//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 初始置換 其功能是把輸...