可以重複輸入加密的des演算法

2021-08-19 06:15:27 字數 2141 閱讀 6236

在基本的des演算法

#include #include #include using namespace std;

//明文打亂表,64-64

int ip = ;

// 金鑰置換表,64-56

int k_1 = ;

// 壓縮置換,56-48

int k_2 = ;

// 每輪左移的位數

int shiftbits = ;

// f函式擴充套件置換表,32-48

int e = ;

// s盒替換 ,6-4

int sbox[8][4][16] = ,,,

}, ,,,

}, ,,,

}, ,,,

}, ,,,

}, ,,,

}, ,,,

}, ,,,

}};// p置換,32-32

int p = ;

// 結尾置換表

int ip_1 = ;

bitset<48> roundkey[16];

bitset<64> orikey;

bitset<28> keyshift(bitset<28> k, int shiftnum)

else

shiftk[i] = k[i - shiftnum + 28];

} return shiftk;

};bitset<32> f(bitset<32> rm, bitset<48> k)

rm48 = rm48 ^ k;

int s = 0;

for (int i = 0; i < 48; i += 6)

bitset<32> finalm = sboxm;

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

return finalm;

};void key()

for (int round = 0; round < 16; round++)

for (int i = 0; i < 28; i++)

leftkey = keyshift(leftkey, shiftbits[round]);

rightkey = keyshift(rightkey, shiftbits[round]);

for (int i = 0; i < 28; i++)

for (int i = 0; i < 28; i++)

for (int i = 0; i < 48; i++)

roundkey[round] = key48;

}};bitset<64> chartobits(const char s[8])

;bitset<64> des(string m, string k)

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

for (int i = 0; i < 16; i++)

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

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

currentbits = cipher;

for (int i = 0; i<64; ++i)

cipher[63 - i] = currentbits[64 - ip_1[i]];

return cipher;

};bitset<64> des1(bitset<64> c1, string k)

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

for (int i = 15; i >= 0; i--)

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

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

currentbits = plain;

for (int i = 0; i<64; ++i)

plain[63 - i] = currentbits[64 - ip_1[i]];

return plain;

};void bittochar(bitset<64> b)

for (int i = 0; i < 8; i++)

};int main()

}

上進行 了輸入部分 的改進

DES演算法加密

public class des des演算法,加密 param data 待加密字串 param key 加密私鑰,長度不能夠小於8位 return 加密後的位元組陣列,一般結合base64編碼使用 throws cryptexception 異常 public static string enc...

DES演算法加密

des演算法程式設計與實現 des演算法是一種常用的對稱加密演算法,明文按64位進行分組,金鑰長64位,金鑰事實上56位參與了des運算 第8 16 24 32 40 48 56 64位是校驗位,使得每個金鑰都有奇數個1 分組後的明文組和56位的金鑰按位替代或交換的方法形成密文組的加密方法。des演...

簡單加密 DES演算法加密

背景 日前,由於公司乙個小專案需要加密,於是便學習 搜尋 了部分加密相關的知識,了解了一些常用加密演算法,包括常用的rsa演算法,和des演算法,突然發覺,過去幾十年年的學還是沒有白上的,學了那麼久的質數和分解,原來在加密領域是這樣強大.乾貨 1 不扯沒用的,分享乙個直接能用的加密演算法,就乙個cp...