2024-06-11 08:12:40 发布
网友
我正在用Python编写一个加密函数,我想用公钥加密一个随机数。
我想知道,如果我使用加密包(Crypto.publicKey.pubkey),我如何才能使用像。。。
Crypto.publicKey.pubkey
def encrypt(self,plaintext,k)
这里的k本身就是一个随机数,这意味着密钥。有人能帮我做点相关的事吗?
k
是否尝试使用收件人的公钥加密会话/邮件密钥以进行对称加密?在这些情况下,使用SSH或TLS可能更简单。
回到你的问题:
Me Too Crypto(m2cypto)是一个很好的openssl包装器。
首先,您需要获取收件人的公钥:
recip = M2Crypto.RSA.load_pub_key(open('recipient_public_key.pem','rb').read())
现在您可以加密邮件:
plaintext = random_integer_you_want_to_encrypt msg = recip.public_encrypt(plaintext,RSA.pkcs1_padding)
现在只有拥有接收者的私有密钥的人才能解密它。
传递给加密的值k不是密钥的一部分。k是用于随机加密的随机值。每次加密邮件时,它应该是不同的随机数。
不幸的是,取决于您使用的公钥算法,这个k需要满足或多或少的严格条件。一、 例如,如果k不包含足够的熵,则加密可能是完全不安全的。这使得使用pycrypto变得困难,因为您需要比库的开发人员更多地了解所使用的密码系统。在我看来,这是pycrypto的一个严重缺陷,我建议您使用一个更高级的加密库,不需要知道任何这样的细节。(例如M2Crypto)
你可以试试Pycrypto。
是否尝试使用收件人的公钥加密会话/邮件密钥以进行对称加密?在这些情况下,使用SSH或TLS可能更简单。
回到你的问题:
Me Too Crypto(m2cypto)是一个很好的openssl包装器。
首先,您需要获取收件人的公钥:
现在您可以加密邮件:
现在只有拥有接收者的私有密钥的人才能解密它。
传递给加密的值k不是密钥的一部分。k是用于随机加密的随机值。每次加密邮件时,它应该是不同的随机数。
不幸的是,取决于您使用的公钥算法,这个k需要满足或多或少的严格条件。一、 例如,如果k不包含足够的熵,则加密可能是完全不安全的。这使得使用pycrypto变得困难,因为您需要比库的开发人员更多地了解所使用的密码系统。在我看来,这是pycrypto的一个严重缺陷,我建议您使用一个更高级的加密库,不需要知道任何这样的细节。(例如M2Crypto)
你可以试试Pycrypto。
相关问题 更多 >
编程相关推荐