V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Wait845
V2EX  ›  问与答

想问问 Python 如何用 RSA 的私钥生成一个对应的公钥?

  •  
  •   Wait845 · 2021-03-04 13:33:07 +08:00 · 855 次点击
    这是一个创建于 1362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    查了很多资料,都没有找到相关的回答。python 用的是 rsa 模块 http://tool.chacuo.net/cryptgetpubkey 这个网站提供这个服务,说明是有可行性的,希望大家能帮帮忙

    4 条回复    2021-03-04 14:47:49 +08:00
    itskingname
        1
    itskingname  
       2021-03-04 14:07:41 +08:00
    os.system('openssl rsa -in mykey.pem -pubout > mykey.pub')
    honeycomb
        2
    honeycomb  
       2021-03-04 14:13:59 +08:00 via Android
    一般来说生成好的 RSA 私钥的封装同时会包含公钥(当然也可以把其中的公钥剥离),生成公钥其实就是把这个公钥提取出来,储存为合适的封装形式
    rrfeng
        3
    rrfeng  
       2021-03-04 14:21:06 +08:00
    理论上:不可以,公钥私钥成对出现,是对称的并无区分,只是认为的定义一个保密一个公开。你无法从公钥推算私钥,也无法从私钥推算公钥,这是非对称加密算法安全性的理论基石。

    实际上:maybe 。因为私钥文件格式中包含了公钥内容。用 1 楼的方式可以取出来。
    asilin
        4
    asilin  
       2021-03-04 14:47:49 +08:00
    如果是想生成 OpenSSH 兼容的公钥,使用:ssh-keygen -f mykey.pem -y

    如果是想生成 OpenSSL 兼容的公钥,使用:ssh-keygen -f mykey.pem -e -m pem
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3358 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:34 · PVG 20:34 · LAX 04:34 · JFK 07:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.