http://phpor.net/blog/post/445
openssl命令的用法
密钥的生成
a. 生成非对称密钥对
openssl genrsa -out rsa.key
b. 指定生成的密钥的位数,默认512
openssl genrsa -out rsa_2048.key 2048
c. 为私钥添加密码 (一般都不用)
openssl genrsa -out rsa_des3.key -des3
密钥的查看
d. 查看私钥
openssl rsa -in rsa.key
e. 查看公钥
openssl rsa -in rsa.key -pubout
f. 查看公钥和modulus
openssl rsa -in rsa.key -modulus
g. 查看密钥的详细信息,包含component prime等细节信息,这些信息的值都是冒号分割的,称为abstract
openssl rsa -in rsa.key -text
h. 查看只有public key的文件
openssl rsa -in pub.txt -pubin
注:
pub.txt 可由
openssl rsa -in rsa.key -pubout >pub.txt
或
openssl rsa -in rsa.key -pubout -out pub.txt
产生
如果pub.txt 中不是公钥将报错, -pubin 仅仅说明 -in 所指定的文件里面是什么
i. 只查看key的其他信息,不显示key
openssl rsa -in rsa.key -noout
其它:
检查是否含有某个子命令
openssl no-rsa
输出rsa,命令的返回值为1,说明存在该子命令
openssl no-des5
输出no-des5 命令的返回值为0,说明不存在des5这个子命令
分析key的详细信息
openssl asn1parse -in rsa.key
openssl asn1parse -in pub.txt
签名和签名的验证
这里给出一个例子:
基本步骤:
1. 生成rsa密钥对
2. 用私钥做签名
3. 用公钥做验证
[root@bsso ~]# openssl
OpenSSL> genrsa -out rsa.1024 1024
Generating RSA private key, 1024 bit long modulus
………..++++++
……….++++++
e is 65537 (0×10001)
OpenSSL> rsa -in rsa.1024 -pubout
writing RSA key
—–BEGIN PUBLIC KEY—–
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0BlFXN1wkgBb5hadMeLz4Pqj2
nZQGyyidW1GTun9rnKkG7o/v/YM8MCcrqW+2hizkbJygfRGvb1iHvc22SD7Q1Unk
7yKU5qDiDnXdIl1x05PMGRwfNhG75uv9tr/IsxA+bmIrEAZ+fxlGhXbg8R2gUm2O
c51AyBOgb92DtEfLgQIDAQAB
—–END PUBLIC KEY—–
OpenSSL> rsa -in rsa.1024 -pubout -out rsa.1024.pub
writing RSA key
OpenSSL> dgst -sign rsa.1024 -sha1 -out a.sign a.php
OpenSSL> dgst -verify rsa.1024.pub -sha1 -signature a.sign a.php
Verified OK
OpenSSL>
相关推荐
### 使用OpenSSL生成RSA密钥对 在网络安全与加密领域,使用公钥基础设施(Public Key Infrastructure,PKI)是常见的做法。其中,OpenSSL作为一款强大的工具库,提供了丰富的功能来支持各种加密算法,包括RSA算法。...
在Linux下,使用OpenSSL生成RSA密钥的步骤如下: 1. 安装OpenSSL:首先,确保系统已经安装了OpenSSL。如果没有,可以通过包管理器(如`apt-get`或`yum`)来安装。例如,在Ubuntu上,可以运行`sudo apt-get install ...
在这个场景中,我们主要关注如何使用 OpenSSL 生成 RSA 密钥对,这是许多网络安全应用的基础,比如 SSL/TLS 加密、数字签名以及 SSH 连接等。 1. **安装 OpenSSL**: 在 Windows 上,你可以通过下载 OpenSSL 的 ...
本教程将详细解释如何使用开源工具openssl生成RSA密钥对,并探讨其在实际应用中的重要性。 首先,我们需要了解RSA的基本原理。RSA算法由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,它使用一对密钥——...
在使用OpenSSL生成RSA密钥对的过程中,还可以通过调整参数来定制密钥长度和其他选项,例如增加加密算法或设置不同的密钥大小。在实际开发中,了解这些细节将有助于构建更安全的系统。 总结起来,本教程详细介绍了...
通常,生成RSA密钥对的命令行操作需要对OpenSSL有一定的了解,而这个免安装工具简化了这个过程,使得即使是对OpenSSL不熟悉的用户也能轻松生成密钥。 压缩包内的"rsa制作教程.txt"可能包含了详细的操作步骤,指导...
本文将详细讲解如何使用OpenSSL工具生成RSA密钥对,并探讨其在加密解密和通信交互中的应用。 首先,让我们了解RSA密钥对的构成。RSA算法由两个密钥组成:公钥和私钥。公钥用于加密数据,而私钥用于解密数据。这种...
2.该程序具有生成RSA密钥对、RSA公钥加密和RSA私钥解密的功能,支持手动输入密钥; 3.该程序支持不限长度的明文加密,支持256~4096长度的密钥,支持Crypto++密码库生成的RSA密钥对(公钥:X.509,私钥:PKCS#8); 4...
6. **命令行使用**:了解如何在命令行中使用OpenSSL生成RSA密钥对,例如`openssl genrsa -out private.key 2048` 生成私钥,`openssl rsa -pubout -in private.key -out public.key` 生成公钥。 7. **密钥管理**:...
1. **生成RSA密钥对** RSA是一种广泛使用的非对称加密算法。在OpenSSL中,你可以通过以下命令生成一对2048位的RSA密钥: ``` openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:...
c++通过使用openssl实现rsa加密解密算法,网上有很多文章和例子,但是大部分都是linux版的,并且内容不全、代码老旧等各种问题,导致最后无法调试,这里提供的源码是用code::blocks编写的c++源码,可以直接运行...
1. `openssl_pkey_new()`:生成一个新的RSA密钥对。 2. `openssl_pkey_get_details()`:获取密钥对的详细信息,包括n、e和d。 3. `openssl_public_encrypt()`:使用公钥进行加密。 4. `openssl_private_decrypt()`:...
`生成命令.txt`很可能包含了生成RSA密钥的OpenSSL命令行指令,如`openssl genpkey -algorithm RSA -out private_key.pem`用于生成私钥,`openssl rsa -in private_key.pem -pubout -out public_key.pem`用于从私钥...
本资源内含2部分, 一个Qt实现的附带界面的RSA密钥生成器, 支持2048bit,可以直接安装使用, 另外一部分是本软件的Qt项目源文件工程。其中RSA的实现使用的是gmp库,只有2个类, 方便移植使用。
**使用OpenSSL生成RSA密钥对** 在Win64OpenSSL-1_1_0f环境下,可以通过命令行工具`openssl.exe`来生成RSA密钥对。例如,生成2048位的密钥对的命令如下: ``` openssl genpkey -algorithm RSA -out private_key.pem...
首先,我们需要理解如何使用openssl生成RSA密钥对。在命令行中,我们可以使用`openssl genpkey -algorithm RSA -out private.key`生成一个私钥,并用`openssl rsa -pubout -in private.key -out public.key`将私钥...
**二、OpenSSL生成RSA密钥对** 在Windows x64环境下,我们可以使用OpenSSL工具来生成RSA密钥对。首先,需要安装`Win64OpenSSL-1_1_0b.exe`这个程序,安装完成后,我们可以在命令行中使用OpenSSL命令行工具。 生成...
**OpenSSL 与 RSA 密钥生成** OpenSSL 是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供丰富的应用程序供测试或其他目的使用。在本压缩包中,我们关注...
生成RSA密钥对的过程通常涉及以下几个步骤: - 随机选择两个大素数p和q。 - 计算n=p*q,n是模数。 - 计算欧拉函数φ(n)=(p-1)*(q-1),它决定了密钥的长度和安全性。 - 选择一个整数e,1φ(n),且e与φ(n)互质。 ...