Python M2Crypto来自string的load_pub_key

时间:2016-07-06 13:21:27

标签: python m2crypto

我如何从string中加载_pub_key。

pub_key1 = M2Crypto.RSA.load_pub_key('public.pem')
f = open('public.pem', 'rb')
bio = M2Crypto.BIO.MemoryBuffer(f.read())
pub_key2 = M2Crypto.RSA.load_pub_key_bio(bio)
print pub_key1 == pub_key2

false

1 个答案:

答案 0 :(得分:1)

print pub_key1 == pub_key2 - >是的,但是:

PUBKEY_TEMPLATE = "-----BEGIN PUBLIC KEY-----\n{}\n-----END PUBLIC KEY-----"
pub_key1 = M2Crypto.RSA.load_pub_key('public.pem')
bio = M2Crypto.BIO.MemoryBuffer(PUBKEY_TEMPLATE.format('<string with pub key>'.strip()))
pub_key2 = M2Crypto.RSA.load_pub_key_bio(bio)
CipherText1 = pub_key1.public_encrypt("This is a secret", M2Crypto.RSA.pkcs1_oaep_padding)
CipherText2 = pub_key2.public_encrypt("This is a secret", M2Crypto.RSA.pkcs1_oaep_padding)
RSA = M2Crypto.RSA.load_key('private.pem')
Text1 = RSA.private_decrypt(CipherText1, M2Crypto.RSA.pkcs1_oaep_padding)
Text2 = RSA.private_decrypt(CipherText2, M2Crypto.RSA.pkcs1_oaep_padding)
print Text1
print Text2


This is a secret
This is a secret