注意: 自签名证书已安装在我的计算机上。
我有一个JWT令牌,我正在尝试使用RSA算法对其进行签名,我找到了一个“ JOSE”库,用于通过以下方法实现相同目的。
Jose.JWT.Encode(payload, certificate.GetRSAPrivateKey(), JwsAlgorithm.RS256);
深入研究它的“编码”方法后,我发现它正在使用Hashing SHA-256
算法。
我正在寻找一种使用RSA排除哈希并直接对其进行签名的方法。
任何帮助将不胜感激!
答案 0 :(得分:1)
对于大多数(即使不是全部)签名算法,哈希是安全性要求。所以你不能排除它。
但是,您可以使用RSA通过签名提供(部分)消息恢复(如ISO / IEC 9796-2中所指定),该签名可以返回(部分)已签名的消息。通常认为它们已被弃用;如果您需要较少的签名开销,则可以使用椭圆曲线加密。
但是,选择这两者中的哪一个都没有关系,因为其中任何一个都会破坏您要实现的JOSE / JS Web令牌协议。