比如C++的socket发送数据到Delphi的TIdTCPServer时,为防止程序被抓包破解,出于安全考虑,我们就要对数据进行加密
C++数据结构可以用unsigned char形式保存,Delphi则可以用TBytes形式保存
下面是加密解密代码,可而根据实际情况自行调整和修改
C++:
//秘钥
int key[] = {
0xEA, 0xBE, 0xF6, 0xCE, 0xA1, 0x1D, 0x3E, 0xD9, 0xBF, 0xF3,
0x77, 0x9E, 0xAB, 0xCA, 0xD3, 0xBF, 0x65, 0xFC, 0x2E, 0x5D,
0xCF, 0x7B, 0x7A, 0x11, 0xED, 0xFA, 0xAF, 0xBA, 0x52, 0xE6
};
//加密
void encodeXor(unsigned char* _dest, int size) {
unsigned char c = 0x1A; //起始值,可以自己修改,加密解密要成对
if (!_dest) return;
for (int i = 0; i < size; ++i) {
_dest[i] = _dest[i] ^ c + key[i % 30];
c = _dest[i];
}
}
//解密
void decodeXor(unsigned char* _dest, int size) {
unsigned char c = 0x1A; //起始值,可以自己修改,加密解密要成对
unsigned char t =