gpt4 book ai didi

json - 如何使用 sha512 为 JWT 生成 RSA key ?

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

我知道可以使用不同的 sha 生成 RSA key 算法。使用 openssl ,我似乎没有指定 key 生成器应该使用什么算法的选项。我怀疑它正在使用 sha256 .

如何使用不同的 sha 生成 RSA key bash shell 或 Ruby 中的算法(例如 sha512 )?是否openssl库支持使用不同的算法生成 RSA key 吗?如果没有,有人知道我可以使用的另一个图书馆吗? (在 ruby​​ 中,OpenSSL::PKey::RSA 似乎不允许选择算法,但 documentation 对我来说很难遵循......?)

如果这个问题已经得到回答,但我一直无法找到答案,我深表歉意。

也许我还应该注意(以防我错了):我的理解是,为生成的 RSA key 选择大小(即 RSA 2048 )与选择散列算法(即 sha512 )是分开的。

更新 - 一些背景

我想用 RSA key 签署 Java Web token 。 JWT library我正在使用给我的印象是可以使用不同的散列算法(RS256、RS384、RS512)生成 RSA key 。使用 openssl 生成 key 似乎并没有让我选择使用什么散列算法。

谢谢!!

最佳答案

RSA key 和“RSA 算法”没有任何哈希算法的概念。
RSA key 只是两个质数和一个其他数字(从( pqe )三元组可以导出所有其他值)。 e 通常被选为 0x010001(尽管存在其他合理的值)并且 pq 是随机生成的(虽然几乎所有 CSPRNG 都会有一个支持哈希算法,但 CSPRNG 本身通常被认为是一个只发出随机性的黑盒)。
哈希算法在 RSA 签名 中发挥作用。
对于 RSA 签名,原始数据在算法下进行散列,然后使用散列值、算法标识符和私钥生成签名(对于 PKCS v1.5 签名......对于 PSS,还有第二个(有效修复)标识符和一些更多的随机字节)。
RS256 是“ R SASSA-PKCS1-v1_5 的 JWA ( JSON Web Algorithms ) 标识符,使用 S HA(-207920 HA(-1094)-0x567920 0x567920 SASSA-PKCS1-v1_5
JWA section 3.3

This section defines the use of the RSASSA-PKCS1-v1_5 digitalsignature algorithm as defined in Section 8.2 of RFC 3447 [RFC3447](commonly known as PKCS #1), using SHA-2 [SHS] hash functions.


这些算法必须使用大小为 2048 位或更大的 key 。

RSASSA-PKCS1-v1_5 SHA-256 数字签名生成为
如下:使用生成 JWS 签名输入的数字签名
RSASSA-PKCS1-v1_5-SIGN 和具有 所需的 SHA-256 哈希函数
私钥
。这是 JWS 签名值。
(强调我的)
因此对 RSA key 没有任何要求,除了规范是在 2015 年编写的,因此他们强制要求与 2015 年兼容的最小 key 大小。

关于json - 如何使用 sha512 为 JWT 生成 RSA key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348254/

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