/****************************************************************
|
|
Usage :
|
----------------------------------------------
|
|
// Encrypt data
|
CEncrypt::Encrypt( strData, strKey );
|
|
// Decrypt data
|
CEncrypt::Decrypt( strData, strKey );
|
|
----------------------------------------------
|
¼ÓÃܺóµÄ³¤¶È( nDataLen )ÓëÔÊý¾Ý³¤¶È( nLen )µÄ¹ØÏµ£º
|
if( nLen % 4 == 0 )
|
nDataLen = nLen * 2 + 2;
|
else
|
nDataLen = ( nLen + 4 - nLen % 4 ) * 2 + 2;
|
|
****************************************************************/
|
|
#if !defined(AFX_ENCRYPT_H__E0AC85D3_A8CB_11D3_ABA6_00A00C138D89__INCLUDED_)
|
#define AFX_ENCRYPT_H__E0AC85D3_A8CB_11D3_ABA6_00A00C138D89__INCLUDED_
|
|
#if _MSC_VER > 1000
|
#pragma once
|
#endif // _MSC_VER > 1000
|
// Encrypt.h : header file
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
// Ëã·¨¹«¿ªµÄ¼ÓÃÜËã·¨ DES
|
class AFX_EXT_CLASS CEncrypt
|
{
|
public:
|
static void Encrypt( CString &str, CString strKey ); // ¼ÓÃÜ
|
static void Decrypt( CString &str, CString strKey ); // ½âÃÜ
|
|
private:
|
static void GetEncryptKey( CString strKey, CString &strKey1, CString &strKey2, CString &strKey3, CString &strKey4 );
|
// ͨ¹ýÖÖ×ÓÃÜÔ¿µÃµ½ÃÜÔ¿
|
// ÖÖ×ÓÃÜÔ¿× 8 ¸ö×Ö½Ú
|
static void EncryptAndDecrypt( CString &str, CString strKey ); // ¼ÓÃܽâÃÜ
|
static void Operation( CString &strLeft, CString &strRight, CString strKey1, CString strKey2 );
|
static CString Plus( CString str,CString strKey ); // ÀÛ¼Ó
|
static void XOr( CString &str,CString strKey ); // Òì»ò
|
static void Exchange( CString &strLeft, CString &strRight ); // ¸ßµÍÎ»ÒÆÎ»»¥»»
|
static int HexStrToDec( CString str); // Ê®Áù½øÖÆ´® To Ê®½øÖÆÊý
|
static int CharToInt( char ch ); // ½« 0~F µÄÊýת»»Îª ÊýÖµ
|
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#endif // !defined(AFX_ENCRYPT_H__E0AC85D3_A8CB_11D3_ABA6_00A00C138D89__INCLUDED_)
|