(4) openssl rsa/pkey

openssl  rsa      是RSA密钥的处理工具

openssl  pkey   是通用非对称密钥处理工具,它们用法基本一致,所以只举例说明openssl rsa。

它们的用法很简单,基本上就是输入和输出私钥或公钥的作用。

openssl   rsa      [-in filename]   [-passin arg]    [-passout arg]   [-out filename]     [-des|-des3|-idea]   [-text] [-noout] [-pubin] [-pubout] [-check]

openssl   pkey    [-in filename]  [-passin arg]    [-passout arg]   [-out filename]      [-cipher]                  [-text] [-noout] [-pubin] [-pubout]

【openssl rsa选项说明:】

-in filename :指定密钥输入文件。默认读取的是私钥,若指定"-pubin"选项将表示读取公钥。将从该文件读取密钥,不指定时将从stdin读取。
-out filename:指定密钥输出文件。默认输出私钥,若指定"-pubin"或"-pubout"选项都将输出公钥。不指定将输出到stdout。
-pubin:指定该选项时,将显式表明从"-in filename"的filename中读取公钥,所以filename必须为公钥文件。
      :不指定该选项时,默认是从filename中读取私钥。公钥文件可以通过文件中的公钥标识符
      :"-----BEGIN PUBLIC KEY-----"和"-----END PUBLIC KEY-----"来辨别。
-pubout:指定该选项时,将显示表明从"-in filename"的filename中提取公钥并输出,所以filename文件必须是私钥文件。
       :不指定该选项时,默认输出私钥。当设置了"-pubin"时,默认也设置了"-pubout"。
       :私钥文件可以通过文件中的私钥标识符"-----BEGIN PRIVATE KEY-----"和"-----END PRIVATE KEY-----"来辨别。
-noout :控制不输出任何密钥信息。
-text  :转换输入和输出的密钥文件格式为纯文本格式。
-check :检查RSA密钥是否完整未被修改过,只能检测私钥,因为公钥来源于私钥。因此选项"-in filename"的filename文件只能是私钥文件。
-des|-des3|-idea:加密输出文件,使得每次读取输出文件时都需要提供密码。
-passin arg :传递解密密钥文件的密码。密码格式见https://www.cnblogs.com/liliyang/p/9738929.html-passout arg:指定加密输出文件的密码。
【openssl pkey选项说明:】
-cipher:等价于openssl rsa的"-des|-des3|-idea",例如"-cipher des3"

示例:

(1).创建一个rsa私钥文件genrsa.pri,然后从中提取rsa公钥到rsa.pub文件中

[[email protected] tmp]# openssl genrsa -out genrsa.pri                #生成私钥

[[email protected] tmp]# openssl rsa -in genrsa.pri -pubout -out rsa.pub                 #提取公钥

[[email protected] tmp]# cat rsa.pub

-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtVNn4VFAy/Z39lIYaF1/
nb8MnbawhpTOdQd/VgSAE012FxjMvydnKGYagxkQ+RxaQZC8Bx4HQSemAHZHCTg3
HT7LTjOXXRA+MugOWayzH0uM+kelG8Whls2ZKFxWpDTGSaYbTeOGusigWlqBsK5r
8Mn6ZlvRilsA4cQE6vyPHXtP+3f5HOFjArxKRUodvCHy8Uq8apYzh+3LwFVCgSNc
k03eJordKsBF3a7afIf/OksP0xnOrJcgOLi4xTYE91gMdgYPAT9faZDlQR0nV3zp
RFJtFmhfeAW++QMxPBVLLii5CAyVtKYQbIS5oKZ4U75kdp4JoZ0XgJzafK0QvVYx
mwIDAQAB
-----END PUBLIC KEY-----

(2).创建一个加密的rsa私钥文件genrsaK.pri,然后从此文件输出公钥至文件rsaK.pub。

[[email protected] tmp]# openssl genrsa -out genrsaK.pri -des3 -passout pass:123456

此时将提示输入密码才能读取该私钥文件。

[[email protected] tmp]# openssl rsa -in genrsaK.pri -pubout -out rsaK.pub
Enter pass phrase for genrsaK.pri:

可以使用"-passin"传递解密的密码。

[[email protected] tmp]# openssl rsa -in genrsaK.pri -pubout -out rsaK.pub -passin pass:123456

(3).移除私钥文件或公钥文件的密码。只需直接输出到新文件即可。以已加密的私钥文件genrsaK.pri为例。

[[email protected] tmp]# openssl rsa -in genrsaK.pri -out genrsaNK.pri

(4).check检测私钥文件的一致性,查看私钥文件被修改过。

[[email protected] tmp]# openssl rsa -in genrsaK.pri -check
Enter pass phrase for genrsaK.pri:
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDAXX2ZwqCtcJXiR9xr7lJhslBybeAo07Q1jYK9IT0atbj72jj+
3Eh5vbAjF0R5GF+luTBpGdhTVlt774oj+5m6zvkx785YpW9gRGroN9eglgvUu8iA
9nY30ulIOTEmpi/TfSBVIBL+XbqZ2pLtr05t59RsLkBcqD7huLq28TODTwIDAQAB
AoGALHWvMNl933g0/B6VwFBNtAzNcRUaCPWdIf955xKGl+TGQ1dVcvoguhpwWjvn
dIGAocHigXgaunAsJsHfUJ+3EMJn7SeI25NDraSRdgH6XFK7yKg3ed5Oh4zLmZEx
kEzh91jBkAwwM29/Vv0kbBiV6ZHH/zOxqkCylEaREQou4VECQQDjK6CrYtak+LR+
LbALGSCWeugMU3h2vweNDmTBVwhbHJXe0inCxrBgK9AXSMstnfmcwH1GR/b1Hzdj
U7TnImxpAkEA2McaDnRprd0pExHKeslyX93M/vUXRikr7H8pFke2lLmx8/HGVZHx
erJj8V8sLIIGRc/j0wPoY6hpf67YEeBa9wJBANEPHVWcKBy6JKDaOuB7x1m00khF
qN7e/nv5ew/SoIX40JO2pWfyoe5fY6mJ/DGG6GgxXRiIseTzTW3DYwAy1cECQFGz
WIKyJVI91Ek3n1R/r/eppKVCwi7TPZa4pkebZ5jOE9+Y8+M0SgqwSTKjaAauSqbt
HzRceK12v6w7vXufTykCQDoejWxVGsaxOW8H5D0+8dcF0JVW5hWljcBuvDd0aEJ0
R4tGO1twXzO1dWBbIFJHHIot6W+V1g5CxVPS4QSsdXU=
-----END RSA PRIVATE KEY-----

现在随便修改下私钥文件,再检测。

[[email protected] tmp]# openssl rsa -in genrsaK.pri -check
unable to load Private Key
139890935146400:error:0906D066:PEM routines:PEM_read_bio:bad end line:pem_lib.c:802:

一般来说,openssl rsa的常用选项就只有"-in filename"、"-out filename"、"-pubout"

原文地址:https://www.cnblogs.com/liliyang/p/9738964.html

时间: 2024-07-31 19:29:02

(4) openssl rsa/pkey的相关文章

2.openssl rsa/pkey

分别是RSA密钥的处理工具和通用非对称密钥处理工具.它们用法基本一致,所以只介绍openssl rsa. [[email protected] tmp]# man rsa NAME rsa - RSA key processing tool SYNOPSIS openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-s

Openssl rsa命令

一.简介 Rsa命令用于处理RSA密钥.格式转换和打印信息 二.语法 openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id] [-des] [-des3] [-id

openssl Rsa 分段加密解密

密钥长度 1024 openssl genrsa -out rsa_private_key.pem 1024 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem function readPublicKey($keyPath) { $key = file_get_contents($keyPath); $this->rsaPublicKey = openssl_pkey_get_public($key) } fu

openssl - rsa加解密例程

原文链接: http://www.cnblogs.com/cswuyg/p/3187462.html openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加密:公钥加密,私钥解密.openssl提供了对RSA的支持,但RSA存在计算效率低的问题,所以一般的做法是使用对称密钥加密数据,然后再把这个只在当前有效的临时生成的对称密钥用非对称密钥的公钥加密之后传递给目标方,目标方使用约定好的非对称密钥中的私钥解开,得到数据加密的密钥,再进行数据解密,得到数据,

openssl -- RSA秘钥格式 PEM/PKCS#8

1.PEM私钥格式文件 -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- 2. PKCS8私钥格式格式 -----BEGIN PRIVATE KEY----- -----END PRIVATE KEY----- 2. PEM公钥格式文件 -----BEGIN PUBLIC KEY----- -----END PUBLIC KEY----- 3. PEM RSAPublicKey公钥格式文件 -----BEGIN RSA P

OpenSSL RSA加解密 (.Net公钥加密/ Linux端私钥解密)

要求在.Net端生成公钥私钥对. 然后在.Net端使用RSA公钥加密:在Linux端使用RSA私钥解密. 最初的尝试是:.Net端使用RSACryptoServiceProvider; linux端使用OpenSSL 搞了整整5个小时,有木有啊,有木有啊! .Net的RSA和OpenSSL对不上,有木有啊,有木有啊! 人都搞晕了就是对不上.最后解决方式换成了,.Net端使用 OpenSSL.NET. .Net端代码 string publicKeyFile = context.Server.Ma

openssl rsa 私钥 PKCS8私钥 公钥

上文配置好 openssl 运行 => cmd => cd C:\usr\local\ssl\bin => 执行 openssl 生成私钥: genrsa -out rsa_private_key.pem 1024 得到 rsa_private_key.pem 文件 生成公钥 rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 得到 rsa_public_key.pem 文件 生成PKCS8私钥 pkcs8 -topk8

openssl RSA非对称加密解密

需要先了解的openssl系列函数 openssl_pkey_get_private 从证书中解析获取私钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false openssl_pkey_get_public 从证书中解析获取公钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false openssl_private_encrypt($data, $encrypted, $privateKeyResourceID, OPENSSL

iOS调用 AlipaySDK 支付宝找不到头文件<openssl/rsa.h> 的解决方案

1. 首先确认 openssl 和 Util目录已经添加到Build setting的 header search path中: 2. 奇葩的是即使添加了也会报这个错,纠结了半天, 经测试发现,需要添加以下的库和framework 问题搞定, SB的编译器啊,误导我.