【问题标题】:How do I put bytes object in a string? Python如何将字节对象放入字符串中? Python
【发布时间】:2021-10-15 04:22:16
【问题描述】:
  1. 我有一条 RSA 加密消息(字节)
  2. 我想做一个字符串:f'!e {encrypted_message}'
  3. 然后我需要对其进行编码,以便我可以通过套接字发送它

我尝试解码我​​的消息,以便将其放入一个字符串中,但我得到了这个:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4.

如何将我的消息(字节对象)放入字符串中?

【问题讨论】:

  • 您必须将字节解码str... 但是如果您只是要对其进行编码,为什么还要移动到字符串呢?为什么不b'!e ' + message
  • @juanpa.arrivillaga 好问题。我的回答假设他们的套接字协议是面向文本的。

标签: python sockets encryption rsa


【解决方案1】:

如果您确实需要一个带有 !e 前缀的文本字符串(为了本次讨论而使用的 ASCII)字符串,那么将任何字节转换为文本的防弹方法是 Base64。

幸运的是,base64.b64encode() 返回字节,因此您可以使用字节串和 +。

import base64

my_bytes = b'asdf'
bytes_with_prefix_for_the_socket = b'!e ' + base64.b64encode(my_bytes)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2023-01-13
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    相关资源
    最近更新 更多