调整XXTEA算法
This commit is contained in:
parent
bf189c20c7
commit
2cd24ce2e2
|
|
@ -27,7 +27,7 @@ extern "C" {
|
|||
static void xxtea_long_encrypt(xxtea_long *v, xxtea_long len, xxtea_long *k)
|
||||
{
|
||||
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) {
|
||||
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)
|
||||
{
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ typedef uint32_t xxtea_long;
|
|||
|
||||
#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_DELTA 0x9e3779b9
|
||||
#define XXTEA_MX (z >> 3 ^ y << 2) + (y >> 5 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z)
|
||||
#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_decrypt(unsigned char *data, xxtea_long data_len, unsigned char *key, xxtea_long key_len, xxtea_long *ret_length);
|
||||
|
|
|
|||
Loading…
Reference in New Issue