gpt4 book ai didi

openssl - 从模数和指数创建 rsa 公钥

转载 作者:行者123 更新时间:2023-12-01 19:19:51 25 4
gpt4 key购买 nike

我想验证 RSA 签名。我有要验证的数据、签名和模数和指数形式的公钥。我想使用 openssl 进行验证。是否可以?我知道我可以使用 openssl rsautl -verify -in sig -inkey key.pem ,但我不知道如何(使用 openssl)创建一个只有模数和指数的公钥。

也许还有其他想法如何检查这个签名(除了编写一些程序)?

最佳答案

为了生成 PEM 格式的 RSA 公钥以与 openssl 一起使用,您可以按照以下步骤操作。

创建 ASN1 定义文件

修改以下模板以包含您的模数和指数

# Start with a SEQUENCE
asn1=SEQUENCE:pubkeyinfo

# pubkeyinfo contains an algorithm identifier and the public key wrapped
# in a BIT STRING
[pubkeyinfo]
algorithm=SEQUENCE:rsa_alg
pubkey=BITWRAP,SEQUENCE:rsapubkey

# algorithm ID for RSA is just an OID and a NULL
[rsa_alg]
algorithm=OID:rsaEncryption
parameter=NULL

# Actual public key: modulus and exponent
[rsapubkey]
n=INTEGER:0x%%MODULUS%%

e=INTEGER:0x%%EXPONENT%%

您可能还想使用 sed 编写脚本,而不是进行编辑

sed -i "s/%%MODULUS%%/$(xxd -ps -c 256 mymodulus.bin)/" def.asn1

请注意,应根据您的 key 长度(以字节为单位)选择-c 256

您可以对指数使用类似的命令。

生成您的 RSA key

使用以下 openssl 命令。这将为您提供 DER 编码的 RSA key 。

openssl asn1parse -genconf def.asn1 -out pubkey.der -noout

然后将其转换为PEM key

openssl rsa -in pubkey.der -inform der -pubin -out pubkey.pem

使用您的 key 进行验证

您可以使用openssl dgst -verifyopenssl rsautl -verify

关于openssl - 从模数和指数创建 rsa 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11541192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com