【问题标题】:convert publickey to integer将公钥转换为整数
【发布时间】:2011-03-17 13:34:31
【问题描述】:

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

这些是 RSAKeyValue:

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

**指数:***AQAB*

我想这样做,因为我想将它的 xor 与另一个整数值...

请在这里帮忙...

谢谢...

【问题讨论】:

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


    【解决方案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,但这里不需要它。

    【讨论】:

    • OP 没有提到有第二个模数。
    • 没有,但他提到了一些其他整数值。这只是一个例子。
    猜你喜欢
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多