这是 rsautlssl 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
rsautl - RSA 实用程序
概要
openssl的 搜索引擎 [-在 文件[退房手续 文件[-inkey 文件[-pubin[-确定[-标志[-核实]
[-加密[-解密[-pkcs[-ssl[-生的[-十六进制转储[-asn1解析]
商品描述
- 搜索引擎 命令可用于使用 RSA 对数据进行签名、验证、加密和解密
算法。
指挥 配置
-在 文件名
如果此选项,则指定要从中读取数据的输入文件名或标准输入
未指定。
退房手续 文件名
默认情况下指定要写入的输出文件名或标准输出。
-inkey 文件
输入密钥文件,默认情况下它应该是一个 RSA 私钥。
-pubin
输入文件是一个 RSA 公钥。
-确定
输入是包含 RSA 公钥的证书。
-标志
对输入数据进行签名并输出签名后的结果。 这需要和 RSA 私钥。
-核实
验证输入数据并输出恢复的数据。
-加密
使用 RSA 公钥加密输入数据。
-解密
使用 RSA 私钥解密输入数据。
-pkcs, -oaep, -SSL, -生的
要使用的填充:PKCS#1 v1.5(默认)、PKCS#1 OAEP、特殊填充用于
SSL v2 向后兼容握手,或分别无填充。 对于签名,
仅由 -pkcs 和 -生的 可以使用。
-十六进制转储
十六进制转储输出数据。
-asn1解析
asn1parse 输出数据,这在与 -核实 选项。
附注
搜索引擎 因为它直接使用 RSA 算法只能用于签名或验证小
数据。
示例
使用私钥对一些数据进行签名:
openssl rsautl -sign -in 文件 -inkey key.pem -out sig
恢复签名数据
openssl rsautl -verify -in sig -inkey key.pem
检查原始签名数据:
openssl rsautl -verify -in 文件 -inkey key.pem -raw -hexdump
0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......................
0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ......
0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 .....你好世界
PKCS#1 块格式由此可见一斑。 如果这是使用加密和
解密块将是类型 2(第二个字节)和随机填充数据
可见而不是 0xff 字节。
可以结合使用此实用程序来分析证书的签名
- asn1解析. 考虑 certs/pca-cert.pem 中的自签名示例。 跑步 asn1解析
如下产生:
openssl asn1parse -in pca-cert.pem
0:d=0 hl=4 l= 742 缺点:序列
4:d=1 hl=4 l= 591 缺点:序列
8:d=2 hl=2 l= 3 缺点:继续 [0]
10:d=3 hl=2 l= 1 素数:整数 :02
13:d=2 hl=2 l= 1 素数:整数 :00
16:d=2 hl=2 l= 13 缺点:序列
18:d=3 hl=2 l= 9 prim: 对象:md5WithRSAEncryption
29:d=3 hl=2 l=0 prim: NULL
31:d=2 hl=2 l= 92 缺点:序列
33:d=3 hl=2 l= 11 缺点:设置
35:d=4 hl=2 l= 9 缺点:序列
37:d=5 hl=2 l= 3 prim: 对象:countryName
42:d = 5 hl = 2 l = 2 prim:PRINTABLESTRING:AU
....
599:d=1 hl=2 l= 13 缺点:序列
601:d=2 hl=2 l= 9 prim: 对象:md5WithRSAEncryption
612:d=2 hl=2 l=0 prim: NULL
614:d=1 hl=3 l= 129 prim:位串
最后的 BIT STRING 包含实际的签名。 它可以通过以下方式提取:
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
可以使用以下方法提取证书公钥:
openssl x509 -in test/testx509.pem -pubkey -noout >pubkey.pem
可以通过以下方式分析签名:
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0:d=0 hl=2 l= 32 缺点:序列
2:d=1 hl=2 l= 12 缺点:序列
4:d=2 hl=2 l= 8 prim: 对象:md5
14:d=2 hl=2 l=0 prim: NULL
16:d=1 hl=2 l= 16 prim:八位字节串
0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F...Js.7...H%..
这是 ASN1 DigestInfo 结构的解析版本。 可以看出,摘要
使用的是md5。 签名的证书的实际部分可以通过以下方式提取:
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
其摘要计算如下:
openssl md5 -c tbs
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
可以看出与上面的恢复值一致。
使用 onworks.net 服务在线使用 rsautlssl