Files

59 lines
1.2 KiB
C
Raw Permalink Normal View History

2025-01-09 17:45:40 +08:00
#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