• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: C/C++
  • 标签: DES  C语言  

资源简介

C语言版本的DES加密解密算法,代码!(DEV C++编译通过) 纯粹C语言写的,我在DEV C++上编译运行过. 最近一个多星期搞加密解密发现网上版本忒多,但C的少而且不全,所以现在想到贡献出来,希望给大家帮助!

资源截图

代码片段和文件信息

/* DES加密解密函数库
 *
 * 本算法根据以下文章内容整理:
 * DES算法的介绍和实现(上) http://www.vckbase.com/document/viewdoc/?id=352
 * DES算法的介绍和实现(下) 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}; /*形成起始密钥*/

/*实现时多采用查表方式下面是定义的供查找用的表*/
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


评论

共有 条评论