我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

公钥(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的加密途径,是如何具体应用的呢?请查看苏南大叔的后续文章。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

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

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