如何用已知的参数生成一个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);
你好我叫大表哥
9 years, 6 months ago