www.pudn.com > 200410111016053551.rar > Des.h


#ifndef   _DES_H__ 
#define   _DES_H__ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
#ifndef __AFXWIN_H__ 
	#error include 'stdafx.h' before including this file for PCH 
#endif 
 
#ifndef   ENCRYPT 
#define   ENCRYPT  0         /* DES 方向 */ 
#define   DECRYPT  1 
#endif 
 
#ifndef   STAND 
#define   STAND    0         /* MAC 标准 */ 
#define   BPI      1 
#endif 
 
#define   MAINKEY     "FDC92F6803DB16F1" 
 
void encrypt0(unsigned char *text, unsigned char *mtext); 
void discrypt0(unsigned char *mtext, unsigned char *text); 
void expand0(unsigned char *in, char *out); 
void compress0(unsigned char *out, unsigned char *in); 
void compress016(unsigned char *out, unsigned char *in); 
 
void setkeystar(unsigned char *bits); 
void LS(char *bits, char *buffer, int count); 
void son(char *cc, char *dd, char *kk); 
 
void ip(unsigned char *text, unsigned char *ll, unsigned char *rr); 
void _ip(unsigned char *text, unsigned char *ll, unsigned char *rr); 
 
void FF(int n, char *ll, char *rr, char *LL, char *RR); 
void s_box(char *aa, char *bb); 
 
unsigned char *GeyKey(int n); 
void GeyPasswordKey(unsigned char *Pwd, unsigned char *DestKey); 
 
/* 
       DES加密解密程序 
       参数:  source --- 源(8字节16进制) 
              dest   --- 目标(8字节16进制) 
              key    --- KEY值(8字节16进制) 
              flag   --- ENCRYPT 加密 
                         DECRYPT 解密 
*/ 
void Des(unsigned char *source, unsigned char *dest, 
         unsigned char *key, unsigned char flag); 
 
void DesMac(unsigned char *source, int iLen, 
            unsigned char *dest, unsigned char *key); 
void Do_XOR(unsigned char *dest, unsigned char *source, int size); 
void HEX_2_DSP(unsigned char *hex, unsigned char *dsp, int count); 
void DSP_2_HEX(unsigned char *dsp, unsigned char *hex, int count); 
#endif