注:我的计算机上安装了自签名证书。
我有一个JWT令牌,我试图使用RSA算法签名,我找到了一个库“JOSE”,用于实现与下面的方法相同。
Jose.JWT.Encode(payload, certificate.GetRSAPrivateKey(), JwsAlgorithm.RS256);
在深入研究它的“编码”方法后,我发现它正在使用Hashing SHA-256
算法。
我正在寻找一种方法,其中散列被排除并使用RSA直接签名。
任何帮助将不胜感激 !
对于大多数(如果不是全部)签名算法,散列是安全要求。所以你不能排除它。
但是,您可以使用签名来提供(部分)消息恢复(如ISO / IEC 9796-2中所规定的)签名,该签名可以返回(已部分)已签名的消息。它们通常被认为已被弃用;如果您需要较少的签名开销,那么您将使用Elliptic Curve加密技术。
但是,您选择这两个中的哪一个并不重要,因为任何一个都会破坏您尝试实现的JOSE / JS Web Token协议。