将publickey转换为整数

时间:2010-07-18 11:50:26

标签: .net vb.net .net-3.5

我将如何将以下公钥转换为整数。

这些是RSAKeyValue:

模量: yf4I7PVef43rZ2NdPFA5FQFb / Y / K / 5Awqrwc + / VDUimthRg4C5K2P6EUhU5n2m4HUiz102LIuwsYDYuyHwG3VUbAb4zjqxiOwrSpsHfCvgOdLsb4DBrXFFGp5kMtoZrDzl84tnDlyYgy8v3o5Qp2eeQgDaau2PhYUxoco6IArHU =

**指数:*** AQAB *

我想这样做bcoz我想把它的xor与另一个整数值...

在这里帮助......

...日Thnx

1 个答案:

答案 0 :(得分:-1)

没有说明为什么你想要首先这样做;如果你想将模数与另一个进行异或,则不需要先将它表示为一个大整数。您可以使用Convert.FromBase64String来获取字节数组,并将这些字节与字节进行异或。

string firstModulus = "yf4I7 ...etc... HU=";
string secondModulus = "...";

byte[] m1 = Convert.FromBase64String(firstModulus);
byte[] m2 = Convert.FromBase64String(secondModulus);

byte[] xor = new byte[m1.Length];
for (int i = 0; i < m1.Length; i++)
    xor[i] = (byte)(m1[i] ^ m2[i % m2.Length]);

string xorString = Convert.ToBase64String(xor);

编辑:我已经更新了代码,允许m2比m1数组短。可以从任何来源填充数组m2。在此示例中,我使用第二个base64字符串,但如果使用常规整数,则可以使用BitConverter.GetBytes将其转换为字节数组。

为了记录,.NET 3.5没有内置的整数类,它足以容纳整个模数。 RSA工作的全部原因是因为它们非常大数。 .NET 4有BigInteger,但你不需要它。