使用Python的rsa模块生成公私钥

在实际项目中,我们会使用openssl生成公司钥对,实际上关于该方面的命令实在不怎么好记,下面我们使用Python的方式来实现相同的效果。
在这里我们使用rsa模块,我们可以通过pip的方式进行安装:

  
dog@debian:~$ pip install rsa  

安装完成后我们可以编写1个脚本来生成对应的公私钥对:

import rsa  

def write_to_file(filename,data):  
    with open(filename,'wb') as f:  
        f.write(data)  

def main():  
    (pubkey,privkey) = rsa.newkeys(2048)  
    data = pubkey.save_pkcs1()  
    write_to_file('pubkey.pem',data)  
    data = privkey.save_pkcs1()  
    write_to_file('privkey.pem',data)

另外,rsa模块还给我们提供了2个CLI命令来实现相同的效果,其中使用pyrsa-keygen来生成私钥,我们需要指定生成的密钥的长度。

  
dog@debian:~$ pyrsa-keygen 2048  

我们可以使用-o的方式将其输出到1个文件中:

  
dog@debian:~$ pyrsa-keygen 2048 -o private.key   
openssl genrsa -out private.key 2048  
Generating 2048-bit key  
Writing private key to stdout  

另外还可以使用--pubout输出公钥:

  
dog@debian:~$ pyrsa-keygen 2048 -o privatekey.pem --pubout publickey.pem  
Generating 2048-bit key  
Writing public key to publickey.pem  
Writing private key to privatekey.pem  

如果我们没有输出公钥,还可以通过pyrsa-pri2pub命令的方式指定私钥来进行生成:

  
dog@debian:~$ pyrsa-priv2pub private.key -i private.key -o public.key  
Reading private key from private.key in PEM format  
Writing public key to public.key in PEM format  

这样我们便以人性化的方式来完成相同的操作了。

若文章对您有帮助,请打赏1块钱。您的支持,可以让我分享更多精彩的文章。转载请注明来源


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。