我有一个使用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'
已经被编码了。在
您的
ciphertext
是一个包含bytes对象的string representation的字符串。我假设您的服务器和客户机运行在python3上,因此在客户机中,只需将bytes对象的表示形式打印到标准输出。尝试对字节使用一些字符串友好的编码,例如base64:
^{pr2}$并在接收端解码:
^{3}$相关问题 更多 >
编程相关推荐