不需要解释为什么首先要这么做;如果你想用另一个来异或模数,就不需要先把它表示成一个大整数。你可以用
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);
BitConverter.GetBytes
将其转换为字节数组。
据记录,.NET 3.5没有足够大的内置整数类来保存整个模数。RSA工作的全部原因是
非常
BigInteger
,但你不需要它。