C++ Socket与Delphi Socket通信数据用 xor 异或加密解密

比如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 =
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值