使用RSA算法对令牌有效负载进行签名

时间:2019-04-03 11:41:20

标签: c# cryptography jwt rsa encode

注意: 自签名证书已安装在我的计算机上。

我有一个JWT令牌,我正在尝试使用RSA算法对其进行签名,我找到了一个“ JOSE”库,用于通过以下方法实现相同目的。

Jose.JWT.Encode(payload, certificate.GetRSAPrivateKey(), JwsAlgorithm.RS256);

深入研究它的“编码”方法后,我发现它正在使用Hashing SHA-256算法。

我正在寻找一种使用RSA排除哈希并直接对其进行签名的方法。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

对于大多数(即使不是全部)签名算法,哈希是安全性要求。所以你不能排除它。

但是,您可以使用RSA通过签名提供(部分)消息恢复(如ISO / IEC 9796-2中所指定),该签名可以返回(部分)已签名的消息。通常认为它们已被弃用;如果您需要较少的签名开销,则可以使用椭圆曲线加密。

但是,选择这两者中的哪一个都没有关系,因为其中任何一个都会破坏您要实现的JOSE / JS Web令牌协议。