我如何从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
答案 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