pubKey和PubKeyPEM之间有什么区别?

2024-04-29 06:36:09 发布

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

我正在学习RSA加密算法,我想在Python中使用它。我正在使用pycryptodome包,我可以从there中看到有两个私钥变量

pubKeypubKeyPEM之间的区别是什么,我需要将它们中的哪一个用于加密部分

另外,为什么Decryptor同时使用这两个密钥(keyPair)而不是私钥(privKeyPEM

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP

keyPair = RSA.generate(1024)

pubKey = keyPair.publickey()
pubKeyPEM = pubKey.exportKey()

privKeyPEM = keyPair.exportKey()

Encryptor = PKCS1_OAEP.new(pubKey)
Decryptor = PKCS1_OAEP.new(keyPair)

Tags: fromimportnewcryptorsa私钥加密算法pubkey
1条回答
网友
1楼 · 发布于 2024-04-29 06:36:09

pubKey只是Python可用的键的表示形式。它由两个整数组成:模和公共指数。当然,在适用的情况下,它也可以是对硬件设备中密钥的引用

pubKeyPEM是公钥的特定编码,以字节或字符为单位。根据to the API specifications,它是一个SubjectPublicKeyInfo结构SubjectPublicKeyInfo或者SPKI是一个二进制结构,PEM是围绕该结构的ASCII铠装,即它指定结构,然后使用base 64对二进制进行编码。它通常由OpenSSL使用

对于加密部分,您需要pubKey。但是您可能必须首先将pubKey传输给发送方,或者必须将pubKey存储在数据库或文件系统中。这就是导出功能的用武之地

私钥通常包含公钥(作为公共指数字段),或者很容易从私钥计算它(在椭圆曲线密钥的情况下)。因此,您可以将私钥视为密钥对。这些概念是否可以互换使用取决于库

相关问题 更多 >