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

时间:2017-03-11 12:54:12

标签: android vb.net rsa public-key-encryption modulus

我在RSA public key我的服务器中生成了VB.Net

<RSAKeyValue><Modulus>tv0tzng4pW7erDo2ke/Ku9TGKRukAzx+lihZVblIOE6GWIoiwlILOANeVliZLi1s5qMsXEUA4GV2woC1zFdhJvfFja8Nacl4I3CJ4JYmGqcSZinWKgo3MJdoEqFl9NliF4wTYLow3GYoUh03WxoeArozV1S03drP898b9PdbjPY+ji4jpZHJWnbfg+qWSziF1Q/pSAxpzabeoamz1+ekqlhuxZavQUl+hIhx/quHqy3ybFWcX6yE5NKeY1fzX3L7</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>

我想将此值设置为我的Android RSA公钥,但使用此代码进行转换并不会设置正确的密钥。

RSAPublicKeySpec spec = new RSAPublicKeySpec(new BigInteger("tv0tzng4pW7erDo2ke/Ku9TGKRukAzx+lihZVblIOE6GWIoiwlILOANeVliZLi1s5qMsXEUA4GV2woC1zFdhJvfFja8Nacl4I3CJ4JYmGqcSZinWKgo3MJdoEqFl9NliF4wTYLow3GYoUh03WxoeArozV1S03drP898b9PdbjPY+ji4jpZHJWnbfg+qWSziF1Q/pSAxpzabeoamz1+ekqlhuxZavQUl+hIhx/quHqy3ybFWcX6yE5NKeY1fzX3L7".getBytes())
,new BigInteger("AQAB".getBytes()));
编辑:我也试过这段代码而没有运气。 @Artjom suggestion

1 个答案:

答案 0 :(得分:1)

首先,您必须从Base64解码模数和指数。

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

BigInteger(int signum, byte[] magnitude)

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