调整XXTEA算法

This commit is contained in:
xb 2024-07-31 16:36:15 +08:00
parent bf189c20c7
commit 2cd24ce2e2
2 changed files with 4 additions and 4 deletions

View File

@ -27,7 +27,7 @@ extern "C" {
static void xxtea_long_encrypt(xxtea_long *v, xxtea_long len, xxtea_long *k) static void xxtea_long_encrypt(xxtea_long *v, xxtea_long len, xxtea_long *k)
{ {
xxtea_long n = len - 1; xxtea_long n = len - 1;
xxtea_long z = v[n], y = v[0], p, q = 6 + 52 / (n + 1), sum = 0, e; xxtea_long z = v[n], y = v[0], p, q = 7 + (n + 1) % 12, sum = 0, e;
if (n < 1) { if (n < 1) {
return; return;
} }
@ -46,7 +46,7 @@ static void xxtea_long_encrypt(xxtea_long *v, xxtea_long len, xxtea_long *k)
static void xxtea_long_decrypt(xxtea_long *v, xxtea_long len, xxtea_long *k) static void xxtea_long_decrypt(xxtea_long *v, xxtea_long len, xxtea_long *k)
{ {
xxtea_long n = len - 1; xxtea_long n = len - 1;
xxtea_long z = v[n], y = v[0], p, q = 6 + 52 / (n + 1), sum = q * XXTEA_DELTA, e; xxtea_long z = v[n], y = v[0], p, q = 7 + (n + 1) % 12, sum = q * XXTEA_DELTA, e;
if (n < 1) { if (n < 1) {
return; return;
} }

View File

@ -52,8 +52,8 @@ typedef uint32_t xxtea_long;
#endif /* end of if defined(_MSC_VER) */ #endif /* end of if defined(_MSC_VER) */
#define XXTEA_MX (z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z) #define XXTEA_MX (z >> 3 ^ y << 2) + (y >> 5 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z)
#define XXTEA_DELTA 0x9e3779b9 #define XXTEA_DELTA 0xd38b681f
XXTEA_DLL unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); XXTEA_DLL unsigned char *xxtea_encrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length);
XXTEA_DLL unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length); XXTEA_DLL unsigned char *xxtea_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length);