使用官方自带的xxtea模块解密,部分字符串解密后为空,请大神帮忙看一下…
1
例如:


代码:
#include "Crypto.h"
#include "scripting/lua-bindings/manual/CCLuaEngine.h"
#include "xxtea/xxtea.h"
#include <string>
void Crypto::encrypt(const char* plaintext,
int plaintextLength,
const char* key,
int keyLength)
{
LuaStack* stack = LuaEngine::getInstance()->getLuaStack();
stack->clean();
xxtea_long resultLength;
unsigned char* result = xxtea_encrypt((unsigned char*)plaintext, (xxtea_long)plaintextLength, (unsigned char*)key, (xxtea_long)keyLength, &resultLength);
if ((int)resultLength <= 0)
{
lua_pushnil(stack->getLuaState());
}
else
{
lua_pushlstring(stack->getLuaState(), (const char*)result, (int)resultLength);
free(result);
}
}
void Crypto::decrypt(const char* plaintext,
int plaintextLength,
const char* key,
int keyLength)
{
LuaStack* stack = LuaEngine::getInstance()->getLuaStack();
stack->clean();
xxtea_long resultLength;
unsigned char* result = xxtea_decrypt((unsigned char*)plaintext, (xxtea_long)plaintextLength, (unsigned char*)key, (xxtea_long)keyLength, &resultLength);
if ((int)resultLength <= 0)
{
lua_pushnil(stack->getLuaState());
}
else
{
lua_pushlstring(stack->getLuaState(), (const char*)result, (int)resultLength);
free(result);
}
}