當前位置:編程學習大全網 - 源碼下載 - 用於C或C++的DES加密算法

用於C或C++的DES加密算法

/* d3des.h -

*

* d3d es . c的標題和定義

*雕刻圖像,1992。

*

*版權所有(c) 1988,1989,1990,1991,1992,作者Richard Outerbridge

*(精靈:外;順式: )

*/

#define D2_DES /*包含雙長度支持*/

#define D3_DES /*包含三倍長度支持*/

#ifdef D3_DES

#伊夫·D2德斯

# define D2 _ DES/* D3 _ DES需要D2 _ DES */

#endif

#endif

#定義EN0 0 /* MODE == encrypt */

# define de 1 1/* MODE = = decrypt */

/*在68000多臺機器上是壹個有用的別名,但在這裏沒有使用。*/

typedef聯合{

無符號長塊[2];

無符號短詞[4];

無符號字符字節[8];

} M68K

extern void deskey(無符號char *,short);

/*六角鍵[8]模式

*根據十六進制設置內部密鑰寄存器

*密鑰包含在8個字節的hexkey中,根據DES、

*根據模式進行加密或解密。

*/

extern void usekey(無符號long *);

/* cookedkey[32]

*用cookedkey中的數據加載內部密鑰寄存器。

*/

extern void cpkey(無符號long *);

/* cookedkey[32]

*將內部密鑰寄存器的內容復制到存儲器中

*位於。cookedkey[0]。

*/

extern void des(unsigned char *,unsigned char *);

/*從[8]到[8]

*加密/解密(根據當前加載到

*內部密鑰寄存器)地址“from”處的壹個八字節塊

*放入地址為“to”的塊中。它們可以是相同的。

*/

#ifdef D2_DES

#define desDkey(a,b) des2key((a),(b))

extern void des2key(無符號char *,short);

/* hexkey[16]模式

*根據十六進制設置內部密鑰寄存器

*密鑰包含在hexkey的16字節中,根據DES、

*根據模式進行雙重加密或解密。

*註意:這將破壞所有三個關鍵寄存器!

*/

extern void Ddes(unsigned char *,unsigned char *);

/*從[8]到[8]

*加密/解密(根據當前加載到

*內部密鑰寄存器)地址“from”處的壹個八字節塊

*放入地址為“to”的塊中。它們可以是相同的。

*/

extern void D2des(unsigned char *,unsigned char *);

/*從[16]到[16]

*加密/解密(根據當前加載到

*內部密鑰寄存器)地址“from”處的壹個16字節的塊

*放入地址為“to”的塊中。它們可以是相同的。

*/

extern void makekey(char *,unsigned char *);

/* *密碼,單長度密鑰[8]

*使用壹個雙倍長度的缺省鍵,這個例程散列壹個空終止的

*字符串轉換成壹個8字節隨機外觀的密鑰,適合與

* deskey()例程。

*/

#定義makeDkey(a,b) make2key((a),(b))

extern void make2key(char *,無符號char *);

/* *密碼,雙長度密鑰[16]

*使用壹個雙倍長度的缺省鍵,這個例程散列壹個空終止的

*字符串轉換成16字節隨機外觀的密鑰,適合與

* des2key()例程。

*/

#ifndef D3_DES /*僅限D2 _ DES */

#定義useDkey(a) use2key((a))

#定義cpDkey(a) cp2key((a))

extern void use2key(無符號long *);

/* cookedkey[64]

*用cookedkey中的數據加載內部密鑰寄存器。

*註意:這將破壞所有三個關鍵寄存器!

*/

extern void cp2key(無符號long *);

/* cookedkey[64]

*將內部密鑰寄存器的內容復制到存儲器中

*位於。cookedkey[0]。

*/

#else /* D3_DES too */

#定義useDkey(a) use3key((a))

#定義cpDkey(a) cp3key((a))

extern void des3key(無符號char *,short);

/*六角鍵[24]模式

*根據十六進制設置內部密鑰寄存器

*密鑰包含在24字節的hexkey中,根據DES、

*根據模式進行雙重加密或解密。

*/

extern void use3key(無符號長整型*);

/* cookedkey[96]

*用cookedkey中的數據加載3個內部密鑰寄存器。

*/

extern void cp3key(無符號long *);

/* cookedkey[96]

*將3個內部密鑰寄存器的內容復制到存儲器中

*位於。cookedkey[0]。

*/

extern void make3key(char *,unsigned char *);

/* *密碼,三倍長度密鑰[24]

*使用三倍長度的默認密鑰,該例程散列壹個空終止的

*串成壹個24字節隨機外觀的密鑰,適合與

des3key()例程。

*/

#endif /* D3_DES */

# endif/* D2 _德斯*/

  • 上一篇:電腦中毒了,殺毒軟件全部打不開,開機速度很慢,QQ也被人家盜去打廣告,安全模式藍屏,從裝了2次系統壹樣
  • 下一篇:亞龍灣到紅崗碼頭有多少公裏?
  • copyright 2024編程學習大全網