在Linux下如何使用openssl生成RSA公钥和私钥对
在《Java实现RSA密钥对并在加解密、加签验签中应用的实例》中,我们有用Java代码生成RSA密钥对,其实在Linux操作系统中,用openssl也是很容易生成密钥对的。
一.如果在ubuntu上要使用openssl的话需要先进行安装
命令如下:
sudo apt-get install openssl
安装完成就可以使用openssl了。
二.进入openssl的交互界面,在命令行了输入openssl即可
1.生成RSA私钥
该命令会生成1024位的私钥,生成成功的界面如上所示。
genrsa -out rsa_private_key.pem
此时我们就可以在当前路径下看到rsa_private_key.pem文件了,如下所示:

2.把RSA私钥转换成PKCS8格式
输入命令如下命令回车
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
得到生成功的结果,这个结果就是PKCS8格式的私钥,如下图:

3.生成RSA公钥
输入如下命令并回车
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
得到生成成功的结果,如下图:

此时,我们可以看到一个文件名为rsa_public_key.pem的文件,打开它,可以看到-----BEGIN PUBLIC KEY-----开头,-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥,如下所示:

附:但在有些时候,我们需要的公钥不是上面格式的,如下所示的公钥格式是sftp时需要的格式

此时,我们需要通过如下Linux命令生成:
ssh-keygen -t rsa -f key
ssh-keygen -e -f key.pub > key_ss2.pub
具体使用实例如下所示:
在Linux下如何使用openssl生成RSA公钥和私钥对的更多相关文章
- Windows 下使用OpenSSL生成RSA公钥和私钥
Windows 下使用OpenSSL生成RSA公钥和私钥 (1)下载OpenSSL 可到该地址下载OpenSSL: https://www.openssl.org/source/(https://ww ...
- 如何使用openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互 ...
- openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- 使用openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- Linux下c基于openssl生成MD5的函数
Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 ...
- c#生成rsa公钥和私钥
c#生成rsa公钥和私钥的类库,包括加密解密,可以用在网站和winform项目 源码地址: http://download.csdn.net/detail/jine515073/8383809
- 生成 RSA 公钥和私钥的方法
在使用 RSA 加密算法时,需要使用到一对 公钥 和 私钥,生成 公钥 和 私钥 需要借助 openssl 这款工具,下载这款工具的地址如下: http://slproweb.com/products ...
- 利用openSSL 生成RSA公钥和密钥
安装openssl for Windows. 之后开管理员控制台,打开openSSL 我的是 C:\OpenSSL-Win32\bin\openssl.exe 生成1024位的私钥,不指定的话默认20 ...
- PHP中使用OpenSSL生成RSA公钥私钥及进行加密解密示例(非对称加密)
php服务端与客户端交互.提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密 先了解一下关于 ...
随机推荐
- 办公用品管理系统VB——模块
'DbFunc.bas'== 标记数据库是否连接 == Private IsConnect As Boolean '== 标记执行Connect()函数后,访问数据库的次数 == Private Co ...
- tensorflow安装-【老鱼学tensorflow】
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor ...
- Yarn集群的搭建、Yarn的架构和WordCount程序在集群提交方式
一.Yarn集群概述及搭建 1.Mapreduce程序运行在多台机器的集群上,而且在运行是要使用很多maptask和reducertask,这个过程中需要一个自动化任务调度平台来调度任务,分配资源,这 ...
- flume进阶
上一张初识里面谢了一些flume入门的内容,其实在真正工作环境里面这种情况使用的是很少的,大部分情况,我们可能需要从多台设备的日志里面汇总收集数据并存储到HDFS上,以便于后期对数据进行处理,真实的情 ...
- java动态代理实现与原理详细分析
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 一.代理模式 代理模式是常用的java设计模式, ...
- Sublime编译器快捷键大全
Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中的文件 Ctrl+G:跳转到第几行 Ctrl+W:关闭当前打开文件 Ctrl+Shift+W:关闭所有打开文件 Ctrl+Shift+V ...
- CSS(八)
CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angl ...
- IOS中多线程的总结
首先要知道线程和进程的区别.一个系统上运行的每一个应用程序都是一个线程.而进程中要执行的任务都是在线程上来实现的,所以说线程是进程的最小执行单元. 进程最少要有一个线程.多线程,顾名思义就是多条线程. ...
- three.js 使用DragControls.js 拖动元素
首先,引入js文件: <script type="text/javascript" src="./path/to/DragControls.js"> ...
- python +selenium +chrome/firefox 环境配置
http://ftp.mozilla.org/pub/firefox/releases/ 各firefox版本下载地址 http://ftp.mozilla.org/pub/firefox/relea ...