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

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


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

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

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

我自己生成私钥的代码:


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

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


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

自己已经解决。。。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。