gpt4 book ai didi

c# - 'System.Security.Cryptography.CryptographicException' : keyset does not exist 类型异常

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:36 27 4
gpt4 key购买 nike

在此链接上执行的所有步骤 System.Security.Cryptography.CryptographicException: keyset does not exist

但对改正错误没有帮助。

static public string Build64(string idOrder, double Amount) {

string StrForSign = KKBRequestStr.Replace("%ORDER%", idOrder).Replace("%AMOUNT%", string.Format("{0:f}", Amount).Replace(",", "."));
X509Certificate2 KKbCert = new X509Certificate2(KKBpfxFile, KKBpfxPass);
RSACryptoServiceProvider rsaCSP = (RSACryptoServiceProvider)KKbCert.PublicKey.Key;
byte[] SignData = rsaCSP.SignData(ConvertStringToByteArray(StrForSign), "SHA1"); // keyset does not exist!!!!!!!!
Array.Reverse(SignData);
string ResultStr = "<document>" + StrForSign + "<merchant_sign type=\"RSA\">" + Convert.ToBase64String(SignData, Base64FormattingOptions.None) + "</merchant_sign></document>";
return Convert.ToBase64String(ConvertStringToByteArray(ResultStr), Base64FormattingOptions.None);
}

最佳答案

据我了解,您正在尝试使用只有公钥 key 的 RSA 来签署一些数据。

RSA 签名是文档验证的过程。您使用私钥 签署一份文件,然后使用公钥 来检查它是否真的属于您。换句话说,您不能使用公钥签署文档。

这就是您收到错误“键集不存在”的原因。您的 key 集不包含用于签署数据的私钥。
您需要从 KkbCert 中提取私钥并将其用于签名。

关于c# - 'System.Security.Cryptography.CryptographicException' : keyset does not exist 类型异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723555/

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