C 實現DES加密演算法例項解析

2022-10-04 04:12:10 字數 1860 閱讀 2563

本文所述例項是乙個實現des加密演算法的程式**,在c++中,des加密是比較常用的加密演算法了,且應用非常廣泛。本cpp類檔案可滿足你的des加密需要,**中附帶了豐富的注釋,相信對於大家理解des可以起到很大的幫助。

具體實現**如下:

#include "memory.h"

#include "stdio.h"

enum ;//encrypt:加密,decrypt:解密

void des_run(char out[8],char in[8],bool type=encrypt);

//設定金鑰

void des_setkey(const char key[8]);

static void f_func(bool in[32],const bool ki[48]);//f函式

static void s_func(bool out[32],const bool in[48]);//s盒代替

//變換

static void transform(bool *out, bool *in, const char *table, int len);

static void xor(bool *ina, const bool *inb, int len);//異或

static void rotatel(bool *in, int len, int loop);//迴圈左移

//位元組組轉換成位組

stati程式設計客棧c void bytetobit(bool *out,const char *in, int bits);

//位組轉換成位元組組

static void bittobyte(char *out, const bool *in, int bits);

//置換ip表

const static char ip_table[64]=;

//逆置換ip-1表

const static char ipr_table[64]=;

//e 位選擇表

static const char e_table[48]=;

//p換位表

const static char p_table[32]=;

//pc1選位表

const static char pc1_table[56]=;

//pc2選位表

const static char pc2_table[48]=;

//左移位數表

const static char loop_table[16]=;

//s盒

const static char s_box[8][4][16]=;

static bool subkey[16][48];//16圈子金鑰

void des_run(char out[8],char in[8], bool type)

}else

}transform(m,m,ipr_table,64);

bittobyte(out,m,64);

}void des_setkey(const char key[8])

}void f_func(bool in[32],const bool ki[48])

void s_func(bool out[32],const bool in[48])

}void transform(bool *out,bool *in,const char *table,int len)

void bittobyte(char *out,const bool *in,int bits)

{ memset(out,0,(bits+7)/8);

for(int i=0;i

本文標題: c++實現des加密演算法例項解析

本文位址:

C 實現DES加密 演算法

我的第一篇部落格就是 c語言實現des加密 今天重寫的時候發現好像 傳錯了,有些尷尬,其中有各種奇怪的問題 問題1.好多表,包括s盒之類的寫成char型別了,應該寫int型別才對 問題2.好多變數沒宣告就用了 問題3.為啥我當時要寫這麼多static?問題4.沒標頭檔案,全擠在cpp裡面了 更新修復...

DES加密演算法

命名空間 system.security.cryptography 定義訪問資料加密標準 des 演算法的加密服務提供程式 csp 版本的包裝物件。無法繼承此類。測試1加密頁面 protected void page load object sender,eventargs e response.r...

DES加密演算法

include include include include using namespace std const static char ip table 64 初始置換 const static char ipr table 64 初始逆置換表 static const char extensi...