gpt4 book ai didi

python - 开箱即用的示例不适用于 python 3.3 预期字节 str 找到

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:01 24 4
gpt4 key购买 nike

from rsa import *

def main():
(bob_pub,bob_pri)=newkeys(512)
message ='Number of bits needed to represent a integer'
crypto = encrypt(message,bob_pub)
message1 = decrypt(crypto,bob_pri)
print(message1)

if __name__ == "__main__" :
main()

大家好,我是网站的新手,这是我的第一篇文章

我安装了 python 3.3 这里是我安装的 pip 列表

C:\Python33>pip list
beautifulsoup4 (4.3.2)
mechanize (0.2.5)
mpmath (0.18)
pip (1.5)
pyasn1 (0.1.7)
pyLibrary (0.1.13316)
PyMySQL (0.6.1)
requests (2.2.0)
rsa (3.1.2)
setuptools (2.1)

C:\Python33>

示例程序的 rsa 文档与代码示例相同,但我收到以下错误消息

Traceback (most recent call last):
File "C:\Python33\my code\rsa hacker.py", line 11, in <module>
main()
File "C:\Python33\my code\rsa hacker.py", line 6, in main
crypto = encrypt(message,bob_pub)
File "C:\Python33\lib\site-packages\rsa\pkcs1.py", line 166, in encrypt
padded = _pad_for_encryption(message, keylength)
File "C:\Python33\lib\site-packages\rsa\pkcs1.py", line 106, in _pad_for_encryption
message])
TypeError: sequence item 3: expected bytes, str found

这段代码应该可以工作,我已经检查过它与 3.3 兼容并且我的安装看起来不错我不确定从哪里开始。请尝试另一个 rsa 包更改为 2.7 还是安装问题请有人用非常基本的步骤解释

最佳答案

您的消息实际上是一个字符串(str)。它恰好是一个 ASCII 字符串,因此在您看来可能是一个字节字符串。它不是;它也可以是 'Привет 世界'。字符串的表示是一件复杂的事情;没有单一的自然字符到字节的转换。

您需要的是 message.encode('utf-8')(或选择其他编码)。这是编码器期望的编码为 UTF-8 字节数组的字符串。

解码后,您将需要message1.decode('urf-8') 来获取原始测试。

关于python - 开箱即用的示例不适用于 python 3.3 预期字节 str 找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com