只能传递给C字节码。python参数

2024-10-01 11:32:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用pythonparamiko的简单的客户机-服务器程序。在

客户机向服务器发送一个加密字符串,服务器需要对其进行解密才能进行处理。在

这是客户:

def collect_stats():
    try:
        cpu = psutil.cpu_percent(interval=1)
        memory = psutil.virtual_memory().percent
        disk = psutil.disk_usage('/').percent
        str_to_send_back = "{} {} {}".format(cpu, memory, disk).strip()
        str_to_send_back = str_to_send_back.encode()
        str_to_send_back = encrypt(str_to_send_back)
        print(str_to_send_back)

服务器获取字符串并尝试对其进行解码(在代码截取器的底部):

^{pr2}$

但是,服务器中的decode方法会引发以下错误:

FDSDSFDSF: Only byte strings can be passed to C code

但是传递给方法的是:

b'\xb5\xf7\xbc\xd5\xfc\xff;\x83\xd3\xab\xb1mc\xc3'

已经被编码了。在


Tags: to方法字符串服务器send客户机backcpu
1条回答
网友
1楼 · 发布于 2024-10-01 11:32:14

您的ciphertext是一个包含bytes对象的string representation的字符串。我假设您的服务器和客户机运行在python3上,因此

print(str_to_send_back)

在客户机中,只需将bytes对象的表示形式打印到标准输出。尝试对字节使用一些字符串友好的编码,例如base64:

^{pr2}$

并在接收端解码:

^{3}$

相关问题 更多 >