python – 使用PyCrypto解密带有RSA公钥的消息

python – 使用PyCrypto解密带有RSA公钥的消息,第1张

概述我想使用PyCrypto解密带有RSA公钥的消息我正在使用下面的代码,但没有得到私钥错误,下面的代码应该改变什么? from Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_OAEPimport base64licence_key="bla bla"licence_key_in_bytes=licence_key.enc 我想使用PyCrypto解密带有RSA公钥的消息我正在使用下面的代码,但没有得到私钥错误,下面的代码应该改变什么?
from Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_OAEPimport base64licence_key="bla bla"licence_key_in_bytes=licence_key.encode("utf-8")encrypted=base64.b16decode(licence_key_in_bytes)key = open("public_key","r").read() rsakey = RSA.importKey(key)rsakey = PKCS1_OAEP.new(rsakey)decrypted_message= rsakey.decrypt(encrypted)
解决方法 加密(提供保密)

>如果要在同一个应用程序中加密/解密,那么您应该简单地交换公钥和私钥.
>加密始终由公钥执行,由私钥解密.
>如果您以相反的方式执行此 *** 作,RSA没有任何安全性.
>如果您知道私钥,则攻击者可以轻易猜到具有小型公共指数的公钥.

签名生成(提供真实性和完整性)

>但是从代码中可能看起来要签署一条消息,但您使用的是明确设计用于加密的算法(RSA OAEP).
>不幸的是,这两个概念都不兼容.首先,OAEP填充机制与用于签名的机制不兼容.

此外,处理密钥可能存在差异

>库将以不同于公钥 *** 作的方式处理私钥 *** 作. – – 私钥需要安全性,例如防止侧信道攻击.
>请注意,公钥允许比私钥更大范围的值(公共指数可能很小或很大,私有指数应始终接近密钥大小).

因此,私钥的组件将始终与公钥的组件匹配.但由于公钥通常具有较小的公共指数,因此公钥可能并不总是被接受为私钥.

>唯一的好解决方案是用正确的签名 *** 作替换您自己的签名 *** 作. – 幸运的是Python处理PSS签名 *** 作,看看documentation here,它有助于包含示例代码.

总结

以上是内存溢出为你收集整理的python – 使用PyCrypto解密带有RSA公钥的消息全部内容,希望文章能够帮你解决python – 使用PyCrypto解密带有RSA公钥的消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存