怎么了?Python RSA解密/

2024-05-17 18:25:56 发布

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

decrypt_message1+=decrypt_message[i]

TypeError: can't concat bytes to int.

decrypt_message1和{}都是字节

if int(length)>=1:
    for i in range(int(length)+1):
        decrypt_message1=""
        if i<int(length)+1:
            decrypt_message1=decrypt_message1.encode()
            for i in range(50):
                decrypt_message1+=decrypt_message[i]
            try:
                decrypt = rsa.decrypt(decrypt_message1, privkey)
            except Exception as E:
                print(E)
            decrypt=decrypt.decode()
            text1.insert(END,decrypt)
        else:
            decrypt_message1=decrypt_message1.encode()
            for i in range(len(message)-int(length)*20):
                decrypt_message1+=decrypt_message[i]
            try:
                decrypt = rsa.decrypt(decrypt_message1, privkey)
            except Exception as E:
                print(E)
            decrypt=decrypt.decode()
            text1.insert(END,decrypt)

Tags: inmessageforifexceptionrangersalength
2条回答

我认为可能是+=运算符引起了问题,因为它调用了__iadd__,而不是{}。在

尝试decrypt_message1 = decrypt_message1 + decrypt_message[i]

decrypt_message[i]是一个bytes对象。它是一个int

>>> b"hello"[0]
104

更改:

^{pr2}$

收件人:

decrypt_message1=decrypt_message1.encode()
decrypt_message1 += decrypt_message[:50]

索引在bytes中的简单下标返回存储在该位置的整数值。 切片返回一个bytes对象。看看这两者之间的区别:

>>> b"hello"[0]
104

以及:

>>> b"hello"[:1]
b'h'

相关问题 更多 >