[2021]XXTEA huoji 数据加密 2022-10-15 502 次浏览 0 次点赞 TEA原始加密太容易被识别了 这是XXTEA,加密强度会强很多 用法: ```cpp int n = 2; //n的绝对值表示v的长度,取正表示加密,取负表示解密 uint32_t const k[4] = { 2,2,3,4 }; btea((uint32_t*)shell_code2, n, k); btea((uint32_t*)shell_code2, -n, k); for (int i = 0; i < sizeof(shell_code2); i++) printf("0x%X,", shell_code2[i]); ``` src: ```cpp #define DELTA 0x9e3779b9 #define MX (((z>>5^y<<2) + (y>>3^z<<4)) ^ ((sum^y) + (key[(p&3)^e] ^ z))) void btea(uint32_t* v, int n, uint32_t const key[4]) { uint32_t y, z, sum; unsigned p, rounds, e; if (n > 1) /* Coding Part */ { rounds = 6 + 52 / n; sum = 0; z = v[n - 1]; do { sum += DELTA; e = (sum >> 2) & 3; for (p = 0; p < n - 1; p++) { y = v[p + 1]; z = v[p] += MX; } y = v[0]; z = v[n - 1] += MX; } while (--rounds); } else if (n < -1) /* Decoding Part */ { n = -n; rounds = 6 + 52 / n; sum = rounds * DELTA; y = v[0]; do { e = (sum >> 2) & 3; for (p = n - 1; p > 0; p--) { z = v[p - 1]; y = v[p] -= MX; } z = v[n - 1]; y = v[0] -= MX; sum -= DELTA; } while (--rounds); } } ``` 本文由 huoji 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。 点赞 0
还不快抢沙发