转换为 str 解码按位字符串

does casting to a str decode a bitwise string

遵守以下内容

signature = rsa.sign(str(message), private_key, 'SHA-1')

查看消息如何被转换为 str

这会解码一个有点明智的字符串吗?

为什么我问。

上面的代码片段被使用 rsa 库的 aws boto 库使用,我不断收到 rsa 库的错误

 File "/Users/bullshit/Documents/softwareprojects/shofi/backend/virtualshofi/lib/python3.8/site-packages/boto/cloudfront/distribution.py", line 677, in _sign_string
    signature = rsa.sign(str(message), private_key, 'SHA-1')
  File "/Users/bullshit/Documents/softwareprojects/shofi/backend/virtualshofi/lib/python3.8/site-packages/rsa/pkcs1.py", line 337, in sign
    msg_hash = compute_hash(message, hash_method)
  File "/Users/bullshit/Documents/softwareprojects/shofi/backend/virtualshofi/lib/python3.8/site-packages/rsa/pkcs1.py", line 439, in compute_hash
    assert hasattr(message, "read") and hasattr(message.read, "__call__")
AssertionError

这个错误对我的问题的上下文并不重要,但它有利于基础。我问的原因也是断章取意

谢谢

来自 str 文档

If neither encoding nor errors is given, str(object) returns type(object).__str__(object), which is the “informal” or nicely printable string representation of object.

所以str(message)大致相当于message.__str__()[1]。它的作用完全取决于 message 的 class。因此,您需要弄清楚该消息参数的类型并查找其文档。


[1] 我说的是“大致相当”。如文档中所述,它实际上等同于 type(object).__str__(object)。在正常的 Python 编程过程中,差异通常是微不足道的,但是如果将函数直接分配给实例,或者如果在 class。假设您使用的是相对标准的库,我怀疑其中任何一个都在这里发挥作用。