資源簡介
C語言版本的DES加密解密算法,代碼!(DEV C++編譯通過)
純粹C語言寫的,我在DEV C++上編譯運行過.
最近一個多星期搞加密解密發(fā)現(xiàn)網(wǎng)上版本忒多,但C的少而且不全,所以現(xiàn)在想到貢獻出來,希望給大家?guī)椭?

代碼片段和文件信息
/*?DES加密解密函數(shù)庫
?*
?*?本算法根據(jù)以下文章內容整理:
?*?DES算法的介紹和實現(xiàn)(上)?http://www.vckbase.com/document/viewdoc/?id=352
?*?DES算法的介紹和實現(xiàn)(下)?http://www.vckbase.com/document/viewdoc/?id=353
?*
?*?Eric?Wei?2007-4-5
?*/
#include?“des.h“
ULONG32?g_outkey[16][2]?=?{0}; /*輸出的key*/
ULONG32?g_bufkey[2]?=?{0}; /*形成起始密鑰*/
/*實現(xiàn)時多采用查表方式下面是定義的供查找用的表*/
static?BYTE?wz_lefttable[16]?=?{1122222212222221};
static?ULONG32?wz_leftandtab[3]?=?{0x0??0x80000000??0xc0000000?}?;
static?BYTE?wz_keyleft[28]?=?
{
???????57494133251791585042342618
???????10259514335271911360524436
};
?
static?BYTE?wz_keyright[28]?=?{
???????635547393123157625446383022
???????1466153453729211352820124
};
?
static?BYTE?wz_keychoose[48]?={
???????14171124153281562110
???????23191242681672720132
???????415231374755304051453348
???????444939563453464250362932
};
?
static?BYTE?wz_pc4[64]?=?{?/*最后一次調整*/
???????408481656246432?397471555236331
???????386461454226230?375451353216129
???????364441252206028?353431151195927
???????342421050185826?33141949175725
};
static?BYTE??wz_pc1[64]?=?{?/*第一次轉換時用*/
?????????????????585042342618102605244362820124
?????????????????625446383022146645648403224168
?????????????????57494133251791595143352719113
?????????????????615345372921135635547393123157?
}?;
?
static?BYTE?wz_pc3[32]?=?{
????????????????????????1672021?29122817?1152326
????????????????????????5183110?282414?322739
????????????????????????1913306?2211425
}?;
static?ULONG32??wz_pc2[64]?=?{?
????0x80000000L0x40000000L0x20000000L0x10000000L?0x8000000L?
0x4000000L?0x2000000L?0x1000000L?0x800000L?0x400000L
????0x200000L?0x100000L??0x80000L?0x40000L?0x20000L0x10000L?
0x8000L?0x4000L?0x2000L?0x1000L?0x800L?0x400L?0x200L
0x100L?0x80L0x40L0x20L?0x10L?0x8L?0x4L?0x2L?0x1L
0x80000000L0x40000000L0x20000000L0x10000000L?0x8000000L
0x4000000L?0x2000000L?0x1000000L?0x800000L?0x400000L
????0x200000L?0x100000L??0x80000L?0x40000L?0x20000L?0x10000L?
0x8000L?0x4000L?0x2000L?0x1000L?0x800L?0x400L?0x200L?
0x100L?0x80L?0x40L0x20L?0x10L?0x8L??0x4L?0x2L?0x1L?????
};?
???
static?BYTE?exptab3[48]?=?{
??????????????????????????????32123454567898910111213
??????????????????????????????121314151617161718192021
??????????????????????????????202122232425242526272829
??????????????????????????????28293031321?
};
???????????????????????
static?BYTE?SP[8][64]?=?
{
???????{
??????????????0xe0x00x40xf0xd0x70x10x40x20xe0xf0x20xb
??????????????0xd0x80x10x30xa0xa0x60x60xc0xc0xb0x50x9
??????????????0x90x50x00x30x70x80x40xf0x10xc0xe0x80x8
??????????????0x2
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13027??2007-04-12?20:58??des.c
?????文件????????812??2007-04-05?15:43??des.h
?????文件????????649??2008-09-23?19:39??main.c
-----------?---------??----------?-----??----
????????????????14488????????????????????3
- 上一篇:地籍測量中界址點坐標的計算程序
- 下一篇:單片機流水燈C語言
評論
共有 條評論