gpt4 book ai didi

python - 将公钥传递到 rsa 解码器时出现问题 TypeError : unsupported operand type(s) for ** or pow(): 'str' and 'int'

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:04 25 4
gpt4 key购买 nike

大家好!有没有办法在传递 key 后解决解码问题,代码在加密和解密后工作正常,但是一旦我开始从数据库中选择公钥,就会出现这个问题。我已经更改了同一行中的数据类型,一切都很好,有不同的错误 plain = [chr(pow(char ** key) % n) for char in ciphertext] 我收到的错误 TypeError: unsupported ** 或 pow() 的操作数类型:'str' 和 'int'

假设数据库中的数据是

data=16502916241650364826125871181879125871246803291624295583281818234716503551129558335511291624181879181879246803125871295583304595291624291624181879295583181496181496184182295114292940

key=117535
n=365867
private_key=113503
p=643
q=569

它应该给我这样的信息:b7bcd0d379f2b5957003d947709Ⅲ

解密代码:

def decrypt(nn,pk, ciphertext):
#Unpack the key into its components

n=nn
key=pk
#Generate the plaintext based on the ciphertext and key using a^b mod m
plain = [chr((ord(char) ** key) % n) for char in ciphertext]
#Return the array of bytes as a string
return ''.join(plain)

if __name__ == '__main__':
'''
Detect if the script is being run directly by the user
'''

print("Your public key is ", public ," and your private key is ", private)

msg1=name

xxc=decrypt(n, key, msg1)
print(xxc)
print("\n")

最后我发送加密结果(名称为 enc_name)以及公共(public) key 对 picc 和 picc2

我尝试更改 pk1=int(231761) 和 pk2=int(399089) 的数据类型,但根本不起作用,并尝试 str 也出现同样的问题。我看过几篇相同相关问题的帖子,但解决方案在我的情况下不起作用,例如 hereherehereherehere这些解决方案都不适合我。我正在使用python 3.6spyder

有什么建议吗!谢谢大家

最佳答案

char 变量是字符串,因此需要先将其转换为 int。您可以使用ord()功能:

plain = [chr((ord(char) ** key)  % n) for char in ciphertext]

关于python - 将公钥传递到 rsa 解码器时出现问题 TypeError : unsupported operand type(s) for ** or pow(): 'str' and 'int' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60015833/

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