我遇到了ctypes绑定问题,而ctypes文档让我头疼了一点。
我有一个远程网络客户端发送二进制数据,而我正在使用的库(Mosquitto,用于MQTT消息代理)提供了一种从网络获取原始二进制数据的ctypes方法。这是“LP_c_ubyte”类型。是否有任何有效的方法可以将其转换为python'str'对象?
我需要一组常规字节用于M2Crypto的解密功能。
pp = ''.join(chr(msg.payload[i]) for i in xrange(msg.payloadlen))
clear_text = rsa.private_decrypt(pp, M2Crypto.RSA.pkcs1_padding)
这很有效,但很难看。
我可以先将客户端更改为base64编码所有内容,然后在此端更改unbase64,但这似乎也是一种解决方法。
有没有更好的方法?
答案 0 :(得分:4)
我认为这应该做你想要的:
import ctypes
pp = ctypes.string_at(msg.payload, msg.payloadlen)