python下RSA加密解密以及跨平台问题
1 # -*- coding: utf-8 -*- 2 __author__ = 'luchanghong' 3 from M2Crypto import RSA,BIO 4 5 rsa = RSA.gen_key(1024, 3, lambda *agr:None) 6 pub_bio = BIO.MemoryBuffer() 7 priv_bio = BIO.MemoryBuffer() 8 9 rsa.save_pub_key_bio(pub_bio)10 rsa.save_key_bio(priv_bio, None)11 12 pub_key = RSA.load_pub_key_bio(pub_bio)13 priv_key = RSA.load_key_bio(priv_bio)14 15 message = 'i am luchanghong'16 17 encrypted = pub_key.public_encrypt(message, RSA.pkcs1_padding)18 decrypted = priv_key.private_decrypt(encrypted, RSA.pkcs1_padding)19 20 print decrypted
?
用法差不多一致。load密钥的方式也有好几种。 二、跨平台密钥不统一 RSA加密验证搞定了,但是和java平台交互的时候出问题,java生成的密钥用Python根本load不了,更别说加密了,反之Java也load不了Python生成的密钥。 上网查找原因,RSA认真流程肯定没有问题,关键是不同平台执行RSA的标准有些偏差。 ?