私钥错误参数不正确
parameter incorrect in private key error
我在单独的文件中有私钥和 public 密钥。
说明中说使用此代码:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(PrivateKey);
但是当代码到达第二行时我得到这个错误:
'System.Security.Cryptography.CryptographicException' 类型的未处理异常发生在 mscorlib.dll
附加信息:参数不正确。
有什么问题?
在我们获得密钥的公司的示例代码中,它使用示例 peivate 和 public 密钥,如下所示:
<RSAKeyValue><Modulus>KEY VALUE</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
即使我加入 <RSAKeyValue><Modulus>
开始并且 </Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
到最后,没用
我使用这个网站将我的密钥从纯字符串转换为 xml:
https://superdry.apphb.com/tools/online-rsa-key-converter
因为 .Net 需要 xml 格式的密钥
最可能的原因是您的私钥没有所有的 D、P、Q、DP、DQ、InverseQ 值。
下一个最可能的原因是您的 D,以 byte[] 形式,不如 Modulus(以 byte[] 形式)长。同样,P/Q/DP/DQ/InverseQ 都需要将其 byte[] 形式作为模数长度的一半(向上舍入)。
XML 格式中的某些键不正确。最可靠的方法是自己构建RSAParameters结构并调用ImportParameters
。原因之一:XML 方法在 .NET Core 中根本不可用,但 ImportParameters 可用。
我在单独的文件中有私钥和 public 密钥。
说明中说使用此代码:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(PrivateKey);
但是当代码到达第二行时我得到这个错误:
'System.Security.Cryptography.CryptographicException' 类型的未处理异常发生在 mscorlib.dll
附加信息:参数不正确。
有什么问题?
在我们获得密钥的公司的示例代码中,它使用示例 peivate 和 public 密钥,如下所示:
<RSAKeyValue><Modulus>KEY VALUE</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
即使我加入 <RSAKeyValue><Modulus>
开始并且 </Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
到最后,没用
我使用这个网站将我的密钥从纯字符串转换为 xml:
https://superdry.apphb.com/tools/online-rsa-key-converter
因为 .Net 需要 xml 格式的密钥
最可能的原因是您的私钥没有所有的 D、P、Q、DP、DQ、InverseQ 值。
下一个最可能的原因是您的 D,以 byte[] 形式,不如 Modulus(以 byte[] 形式)长。同样,P/Q/DP/DQ/InverseQ 都需要将其 byte[] 形式作为模数长度的一半(向上舍入)。
XML 格式中的某些键不正确。最可靠的方法是自己构建RSAParameters结构并调用ImportParameters
。原因之一:XML 方法在 .NET Core 中根本不可用,但 ImportParameters 可用。