#ifndef DSRCRYPTION_H #define DSRCRYPTION_H #define CRY_VERSION1 0x01 #define CRY_VERSION2 0x02 #define CUR_CRY_VERSION 0x01 // 当前的加密版本(取值范围为 0 -- 250),方便通过版本使用不同的加密方法。 #define BYTES_OF_CRY_FACTORS 32 // 加密因子字节数 class DsrCryption { public: DsrCryption(); public: int InitDsrCryptionCtrl(int version, unsigned int cryword, const unsigned char * factors); // 初始化加密控制, 自动生成生成加密字和加密因子 unsigned int GetDsrCryptionWord(); // 获取加密字 int EnCryption(unsigned char * pData, int size); // 加密数据,使用当前的加密字和加密因子 int DeCryption(unsigned char * pData, int size); // 解密数据,使用当前的加密字和加密因子 private: int CreateCryWord(int version); // 生成加密字 int CreateCryFactors(const unsigned char * factors); // 生成加密因子 private: int m_initflag; unsigned int m_cryword; unsigned char m_factors[BYTES_OF_CRY_FACTORS]; }; #endif // DSRCRYPTION_H