c語言實現DES演算法的金鑰生成演算法

2021-08-28 19:24:35 字數 1115 閱讀 5433

直接上源**

要求是輸入是金鑰是十六位數,字母要大寫

#include

int main()

;    //置換陣列

int change2[28] = ;

int change11[48] = ;

int yiwei[16] = ;        

for(i = 0; i < 16; i++)        //輸入金鑰

for(i = 0; i < 16;i ++)//十六進製制轉換為01字串

if(key[i] == '1')

if(key[i] == '2')

if(key[i] == '3')

if(key[i] == '4')

if(key[i] == '5')

if(key[i] == '6')

if(key[i] == '7')

if(key[i] == '8')

if(key[i] == '9')

if(key[i] == 'a')

if(key[i] == 'b')

if(key[i] == 'c')

if(key[i] == 'd')

if(key[i] == 'e')

if(key[i] == 'f')

j = j + 4; 

}printf("\n");

for(i = 0; i < 28; i++)        //金鑰置換選擇1,

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

for(t = 0 ; t < 16;t++)            //16次迴圈

else

}for(i = 0; i < 48; i++)        //置換選擇2

for(i = 0; i < 28; i++)        //迴圈復原

printf("第%d個子金鑰為:\n",t+1);

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

printf("\n");

}return 0;

}實驗結果:

DES演算法的c語言實現

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

DES加密演算法的C語言實現

include des version 0.4 created by source at 2007.3 competence p4 3.0g 512m 3000000 times encryption with created subkeys 26.784 seconds about 0.85m s...

Linux下c語言實現DES和3DES演算法

一 des演算法理論 請朋友們自己去學習,我的 也是依據這裡的理論寫的。二 實現環境及檔案 a 環境 redhat linux c b 實現檔案 des.h des.c makefile 三 1 des.h檔案 ifndef des h define des h static int pc 1 ta...