我不太明白这个问题。
根据:http://www.madboa.com/geek/openssl/#key-rsa ,你可以从私钥中生成公钥。
openssl genrsa -out mykey.pem 1024
openssl rsa -in mykey.pem -pubout > mykey.pub
我最初的想法是,它们是一对一起生成的。 RSA私钥包含总和吗?还是公钥?
openssl genrsa -out mykey.pem 1024
将实际产生一个公钥-私钥对。该密钥对被保存在生成的mykey.pem
文件中。
openssl rsa -in mykey.pem -pubout > mykey.pub
将提取公钥并打印出来。这里是一个链接,可以更好地描述这个页面。
编辑:请查看实例部分here。要只输出私钥的公钥部分。
openssl rsa -in key.pem -pubout -out pubkey.pem
要获得一个可用于SSH的公钥,请使用ssh-keygen。
ssh-keygen -y -f key.pem > key.pub
在大多数生成RSA私钥的软件中,包括openssl',私钥被表示为PKCS#1 RSAPrivatekey对象或其变体。
A.1.2 RSA私钥的语法
一个RSA私钥应该用ASN.1类型来表示 RSAPrivateKey。
RSAPrivateKey ::= SEQUENCE { 版本 版本。 modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER, -- (inverse of q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL }
正如你所看到的,这种格式有许多字段,包括模数和公共指数,因此是RSA公钥中的信息的严格超集。