使用二进制参数调用lua方法

我正在尝试加密一个输入字符串并将密文传递给解密函数,返回的是原始字符串。

输入字符串 -> 加密 -> 密文 -> 解密 -> 原始输入字符串

我正在从C++代码中调用Lua函数(假设是encrypt(input))。 我有一个回调函数用于此加密函数,它使用OpenSSL加密输入字符串并将结果推入Lua堆栈。 然后我获取推送的字符串并调用Lua函数(假设是decrypt(ciper_text))。

encEncrypt("abcdef") encDecrypt("'\x17Q.J\xce\xab\x94\x83c\xd6\x cqD\x94\x86")

但是会出现以下错误 :1: hexadecimal digit expected near '"'Q.JΫ▒▒c▒\xn '

我做错什么了吗?有什么指针或评论吗?

点赞
用户2858170
用户2858170

你的字符串中在 "\x" 之后有一个空格。

"\x cq"

把它去掉,确保在 \x 之后有一个有效的两位数十六进制。类似于 "\x0c"。

2019-07-09 06:52:02