#include "config.h" //用私钥对随机数加密得到密文作为新的key使用 INT8U ENCRY_Xor(INT8U *ptr, INT8U Key, INT16U Len) { INT16U i, tKey; tKey = RAND_Generate(); //生成随机数用作密钥 ptr[Len] = Key ^ tKey; //密码加密后存储到数据中 for(i = 0; i < Len; i++) //用随机数进行异或,对数据加密 { ptr[i] ^= tKey; } ptr[Len + 1] = CRC8(ptr, Len + 1); //添加CRC校验码 return(1); } INT8U ENCRY_DisXor(INT8U *ptr, INT8U Key, INT16U Len) { INT16U i, tKey; if(ptr[Len + 1] != CRC8(ptr, Len + 1)) //CRC校验通不过直接返回 { return(0); } tKey = ptr[Len] ^ Key; //解密密钥 for(i = 0; i < Len; i++) //对数据进行解密 { ptr[i] ^= tKey; } return(1); }