公钥(yue)私钥(yue),这字儿念yue,不念yao。但是,钥匙里面的钥念yao。好吧,这个是截至到发稿的时候的标准读音。不过既然有前车之鉴,很多小时候的错别字读音,现在都转正了。那么,也不排除,这个公钥还是在将来的某一年由公yue变成公yao。本文苏南大叔讲述两个非常实用的命令,就是如何利用openssl生成私钥和公钥。

RSA算法属于非对称加密算法,非对称加密算法需要两个秘钥:公开密钥(publickey)和私有秘钥(privatekey)。公开密钥和私有秘钥是一对,如果公开密钥对数据进行加密,只有用对应的私有秘钥才能解密。如果私有秘钥对数据进行加密那么只有用对应的公开密钥才能解密。因为加密解密使用的是两个不同的秘钥,所以这种算法叫做非对称加密算法。简单的说就是公钥加密私钥解密,私钥加密公钥解密。

苏南大叔:openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)? - openssl-rsa-private-public
openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)?(图5-1)

本文测试环境:mac/openssl。本文假设您已经通过某种途径安装好了openssl,本文测试环境中的openssl是通过brew安装的,安装过程见文末相关链接。

生成私钥

生成私钥的命令如下:

openssl genrsa -out rsa_1024_priv.pem 1024

不出意外的话,就可以在当前目录下,生成私钥文件rsa_1024_priv.pem

苏南大叔:openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)? - openssl-rsa-private
openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)?(图5-2)

生成公钥

因为公钥的生成,是基于私钥文件的。所以,需要先生成私钥,然后再执行下面的命令,生成公钥。先暂时假设已经生成好的私钥文件名称是:rsa_1024_priv.pem。那么,生成对应的公钥文件rsa_1024_pub.pem的命令是:

openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem

苏南大叔:openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)? - openssl-rsa-public
openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)?(图5-3)

查看文件

可是使用cat命令查看,或者直接记事本打开即可。

cat rsa_1024_priv.pem

苏南大叔:openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)? - rsa-private-content
openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)?(图5-4)

苏南大叔:openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)? - rsa-public-content
openssl命令行,如何快速生成一组RSA钥匙对(私钥/公钥)?(图5-5)

相关链接

下面的这个链接,是在mac下安装openssl的教程:

这里还有可以在线生成RSA密钥对的地方,点击一下按钮就可以,蛮轻松省力的。大家可以试试:

总结

本文中,苏南大叔描述了rsa密钥对的生成方式,那么在后续文章中,苏南大叔将会讲述其密钥对儿的简要使用方式方法。那么rsa的加密途径,是如何具体应用的呢?请查看苏南大叔的后续文章。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   openssl    rsa

本站的忠实读者小伙伴,正在阅读下面这些文章: