天涼好個秋.

根据n和e生成公钥

787 阅 0 评 问题&解决方案

需求

给定的n和e生成RSA公钥。

Code

def generate_RSA():
    '''
    Return public key
    '''
    from Crypto.PublicKey import RSA 
    rsamod = long(0xD6F1CFBF4D9F70710527E1B1911635460B1FF9AB7C202294D04A6F135A906E90E2398123C234340A3CEA0E5EFDCB4BCF7C613A5A52B96F59871D8AB9D240ABD4481CCFD758EC3F2FDD54A1D4D56BFFD5C4A95810A8CA25E87FDC752EFA047DF4710C7D67CA025A2DC3EA59B09A9F2E3A41D4A7EFBB31C738B35FFAAA5C6F4E6F)
    rsapubexp = long(0x010001)
    rawkey = (rsamod,rsapubexp)
    new_key = RSA.construct(rawkey)
    public_key = new_key.publickey().exportKey("PEM")
    print public_key
    return public_key
generate_RSA()

说明

rsamod为n
rsapubexp为e

附录

Public-Key Cryptography Standards (PKCS)
由publickey提取n和e
Python RSA.generate
Crypto.PublicKey.RSA-module
wooyun code demo

其他

1.迅雷插件需要生成publickey,但是发现竹篮打水一场空,key并没变化。
2.有机会多学习Python,很强大,资料也容易找。
3.需要复习下RSA加密算法。
4.openssl的c库是不是也由这api呢?待验证。
5.离开google会死星人.....

EOF