59 lines
1.2 KiB
C
59 lines
1.2 KiB
C
|
|
#ifndef _ENCRYPT_H_
|
|||
|
|
#define _ENCRYPT_H_
|
|||
|
|
|
|||
|
|
//#include <Windows.h>
|
|||
|
|
#include "wrand.h"
|
|||
|
|
class Encrypt
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
Encrypt()
|
|||
|
|
{
|
|||
|
|
m_nSelfSalt = 0;
|
|||
|
|
m_nTargetSalt = 0;
|
|||
|
|
m_nKey = 0;
|
|||
|
|
m_nSelfSalt = 0;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
void SetSelfSalt(int salt); //<2F><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void SetTargetSalt(int salt); //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>key
|
|||
|
|
|
|||
|
|
int GetSelfSalt()
|
|||
|
|
{
|
|||
|
|
return m_nSelfSalt; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool Encode(char* pInBuff, size_t len, char* pOutBuff); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
bool Decode(char* pInBuff, size_t len, char* pOutBuff); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
inline bool IsKeyCrcCorrect(unsigned short nKeyCRC) //
|
|||
|
|
{
|
|||
|
|
return (GetKeyCRC() == nKeyCRC);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
inline static unsigned short CRC16(const char* lpBuffer, size_t len) //<2F><><EFBFBD><EFBFBD>CRC-16<31><36>Checksum
|
|||
|
|
{
|
|||
|
|
return (unsigned short)CRC16Calc((unsigned char*)lpBuffer, len);
|
|||
|
|
}
|
|||
|
|
inline int GetKey()
|
|||
|
|
{
|
|||
|
|
return m_nKey;
|
|||
|
|
}
|
|||
|
|
unsigned int GetKeyCRC() //<2F><>ȡkey<65><79>crcֵ
|
|||
|
|
{
|
|||
|
|
return (CRC16((const char*)m_sKeybuff, 4));
|
|||
|
|
}
|
|||
|
|
private:
|
|||
|
|
void GenKey(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ
|
|||
|
|
|
|||
|
|
int GenSalt(); // <20><><EFBFBD><EFBFBD>salt
|
|||
|
|
private:
|
|||
|
|
int m_nSelfSalt; //<2F>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int m_nTargetSalt; //ͨ<>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int m_nKey; //<2F><>Կ
|
|||
|
|
unsigned char m_sKeybuff[4] ; //<2F><>Կ<EFBFBD><D4BF>buff<66><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif
|