首页 > 如何用已知的参数生成一个RSAPrivateKey

如何用已知的参数生成一个RSAPrivateKey

通过动态hook,打印出一个PrivateKey的内容,参数包括:

modulus, publicExponent, privateExponent, primeP, primeQ, primeExponentP, primeExponentQ, crtCoefficient

这些参数的原类型都是BigInteger,因为打印到文件中都变成了String类型,我想重新利用这些参数生成一个完整的新PrivateKey。

因为只需要私钥,并不需要用keypair这样的类去产生密钥对,但是采用RSAPrivateCrtKeySpec生成的私钥打印到文件中发现,与直接通过hook打印出来的私钥并不一致。

我自己生成私钥的代码:

BigInteger modulus = new BigInteger("84ba812b1ebaf".getBytes());

....其他几个参数类同赋值

RSAPrivateCrtKeySpec spec = new RSAPrivateCrtKeySpec(modulus, publicExponent, privateExponent, primeP, primeQ, primeExponentP, primeExponentQ, crtCoefficient);
            KeyFactory keyFactory = KeyFactory.getInstance("RSA","BC");
            PrivateKey privateKey = keyFactory.generatePrivate(spec);

自己已经解决。。。

【热门文章】
【热门文章】