直接上源**
要求是輸入是金鑰是十六位數,字母要大寫
#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...