设置RSA参数

时间:2012-06-16 23:22:51

标签: c# rsa

我已经获得了M,Exponent和D组件以及RSA参数,并且一直在尝试使用它在C#.NET中加密数据。我想知道公钥的哪些部分需要加密数据?此外,指数在基数16中为10001.我应该在C#中设置RsaParameters.Exponent参数?我不知道我应该如何解释这个数字并将它放在Exponent中,这是一个字节数组。组件是否需要在底座16中具有均匀的长度?

感谢。

2 个答案:

答案 0 :(得分:3)

RSAParameters rsaKeyInfo = new RSAParameters
{
   Exponent = new byte[] {1, 0, 1},
   ...
};

using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
    rsa.ImportParameters(rsaKeyInfo);
    rsa.Decrypt(...)
}

答案 1 :(得分:2)

这是sample of code 因此,您应将Exponent设置为数字65537的字节表示形式(基数为16的10001)。 我不太确定它在RSACryptoServiceProvider中是如何工作的,但是如果你使用的是OpenSSL,则BitConverter.GetBytes(65537)是一个坏主意,因为它是{1, 0, 1, 0},而不是{1, 0, 1}它无法正常工作。所以,我认为最好以MSDN的例子中的方式保留它:

byte[] Exponent = {1,0,1};