我有下面的c#跳堡代码,可以使用C# /RSA 512在C#中签名一些数据。有谁能告诉我如何在这个过程中应用Pkcs1填充?
using (var txtreader = new StringReader(File.ReadAllText(_certificatePath)))
{
var keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject();
var key = keyPair.Private as RsaPrivateCrtKeyParameters;
ISigner sig = SignerUtilities.GetSigner("SHA512withRSA");
sig.Init(true, key);
sig.BlockUpdate(requestToSign, 0, requestToSign.Length);
byte[] signature = sig.GenerateSignature();
}发布于 2018-04-13 05:14:49
PKCS#1实际上是唯一用于RSA 512签名的填充算法。
检查RFC 4051
2.3.4。RSA-RSA 512 这意味着2.3.1节中描述的PKCS#1 v1.5填充算法RFC3447,但是带有ASN.1 BERSHA-512算法标识符前缀。
您也可以检查BouncyCastle源代码。RsaDigestSigner在没有任何条件或配置的情况下创建Pkcs1Encoding实例:
private readonly IAsymmetricBlockCipher rsaEngine = new Pkcs1Encoding(new RsaBlindedEngine());还可以在调试下检查已使用的实现:

因此,在回答问题时:
有谁能告诉我如何在这个过程中应用Pkcs1填充?
不应采取任何其他行动。Pkcs1是RSA 512签名的唯一可能的填充算法.
https://stackoverflow.com/questions/49795207
复制相似问题