我正在学习RSA
加密算法,我想在Python中使用它。我正在使用pycryptodome
包,我可以从there中看到有两个私钥变量
pubKey
和pubKeyPEM
之间的区别是什么,我需要将它们中的哪一个用于加密部分
另外,为什么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)
pubKey
只是Python可用的键的表示形式。它由两个整数组成:模和公共指数。当然,在适用的情况下,它也可以是对硬件设备中密钥的引用pubKeyPEM
是公钥的特定编码,以字节或字符为单位。根据to the API specifications,它是一个SubjectPublicKeyInfo
结构SubjectPublicKeyInfo
或者SPKI是一个二进制结构,PEM是围绕该结构的ASCII铠装,即它指定结构,然后使用base 64对二进制进行编码。它通常由OpenSSL使用对于加密部分,您需要
pubKey
。但是您可能必须首先将pubKey
传输给发送方,或者必须将pubKey
存储在数据库或文件系统中。这就是导出功能的用武之地私钥通常包含公钥(作为公共指数字段),或者很容易从私钥计算它(在椭圆曲线密钥的情况下)。因此,您可以将私钥视为密钥对。这些概念是否可以互换使用取决于库
相关问题 更多 >
编程相关推荐