将模数和指数从VB.Net设置为Android/Java

将模数和指数从VB.Net设置为Android/Java,android,vb.net,rsa,public-key-encryption,modulus,Android,Vb.net,Rsa,Public Key Encryption,Modulus,我有这个RSA公钥,它是在我的服务器VB.Net中生成的 <RSAKeyValue><Modulus>tv0tzng4pW7erDo2ke/Ku9TGKRukAzx+lihZVblIOE6GWIoiwlILOANeVliZLi1s5qMsXEUA4GV2woC1zFdhJvfFja8Nacl4I3CJ4JYmGqcSZinWKgo3MJdoEqFl9NliF4wTYLow3GYoUh03WxoeArozV1S03drP898b9PdbjPY+ji4jpZHJWnbfg+q

我有这个RSA公钥,它是在我的服务器VB.Net中生成的

<RSAKeyValue><Modulus>tv0tzng4pW7erDo2ke/Ku9TGKRukAzx+lihZVblIOE6GWIoiwlILOANeVliZLi1s5qMsXEUA4GV2woC1zFdhJvfFja8Nacl4I3CJ4JYmGqcSZinWKgo3MJdoEqFl9NliF4wTYLow3GYoUh03WxoeArozV1S03drP898b9PdbjPY+ji4jpZHJWnbfg+qWSziF1Q/pSAxpzabeoamz1+ekqlhuxZavQUl+hIhx/quHqy3ybFWcX6yE5NKeY1fzX3L7</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
编辑:我也尝试过这个代码,但没有成功。

首先,必须解码Base64中的模数和指数

其次,必须为BigInteger使用不同的构造函数:


将signum作为一个,因为这两个值都不是2-补码表示法,并且总是正的。

。如果给出的答案解决了您的问题,您可能会找到它。如果没有,那么请进一步说明问题所在。问题是我用这种方式使用的密钥与服务器上的密钥不匹配,因此解密失败,无法获得我的纯文本。我希望我的模数与我上面写的完全相同,但正如您在表中看到的,它是一个不同的密钥。我不明白。你如何确定它是不同的?我只看到相同模数的不同编码。你确定,加密和解密使用的是完全相同的填充吗?我从服务器中的vb.net发送公钥模数和指数,并将其导出为xml。我想将我的公钥设置为与之匹配。
RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger("tv0tzng4pW7erDo2ke/Ku9TGKRukAzx+lihZVblIOE6GWIoiwlILOANeVliZLi1s5qMsXEUA4GV2woC1zFdhJvfFja8Nacl4I3CJ4JYmGqcSZinWKgo3MJdoEqFl9NliF4wTYLow3GYoUh03WxoeArozV1S03drP898b9PdbjPY+ji4jpZHJWnbfg+qWSziF1Q/pSAxpzabeoamz1+ekqlhuxZavQUl+hIhx/quHqy3ybFWcX6yE5NKeY1fzX3L7".getBytes())
,new BigInteger("AQAB".getBytes()));
BigInteger(int signum, byte[] magnitude)