私钥错误中的参数不正确

时间:2017-05-28 04:43:45

标签: c# cryptography rsa private-key

我在单独的文件中有私钥和公钥。

指令中的

使用此代码:

<RSAKeyValue><Modulus>KEY VALUE</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>

但当代码到达第二行时,我收到此错误:

mscorlib.dll中发生未处理的“System.Security.Cryptography.CryptographicException”类型异常

附加信息:参数不正确。

问题是什么?

在我们获得密钥的公司的示例代码中,它使用样本peivate和这样的公钥:

<RSAKeyValue><Modulus>

即使我将</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>加入到开头let array1 : Array<string | number> = []; array1.push('abc', 9, 'def', 10); for (let a of array1 as Array<string> ){ console.log(a); }

到最后,没有工作

2 个答案:

答案 0 :(得分:0)

我使用此网站将我的密钥从纯字符串转换为xml:

https://superdry.apphb.com/tools/online-rsa-key-converter

因为.Net需要xml格式的密钥

答案 1 :(得分:0)

最可能的原因是您的私钥没有所有D,P,Q,DP,DQ,InverseQ值。

下一个最可能的原因是你的D(以byte []形式,并不像模数(以byte []形式)。同样,P / Q / DP / DQ / InverseQ都需要将其byte []形式作为模数长度的一半(向上舍入)。

某些键在XML格式中不是真的。最可靠的方法是自己构建RSAParameters结构并调用ImportParameters。一个原因:.NET方法根本不提供XML方法,但ImportParameters是。