查找 RSA 参数
Finding RSA parameters
我想在我用于 android 项目演示的这段代码中找到 c、d、p 和 q 参数。
https://en.wikipedia.org/wiki/RSA_(cryptosystem)#Key_distribution
这是我的代码
public class RSA {
private final static String RSA = "RSA";
public static PublicKey puk;
public static PrivateKey prk;
public static void generateKey() throws Exception {
KeyPairGenerator gen = KeyPairGenerator.getInstance(RSA);
gen.initialize(512, new SecureRandom());
KeyPair keyPair = gen.generateKeyPair();
puk = keyPair.getPublic();
prk = keyPair.getPrivate();
}
}
请问如何从此代码中获取这些值?
我不记得确切的映射,但如果您将 public 和私钥转换为它们的 RSA 特定类型,您可以访问所有值:
RSAPublicKey puk = (RSAPublicKey) keyPair.getPublic();
RSAPrivateCrtKey prk = (RSAPrivateCrtKey) keyPair.getPrivate();
System.out.println("p: " + prk.getPrimeP());
System.out.println("q: " + prk.getPrimeQ());
...
参见 RSAPublicKey and RSAPrivateCrtKey
我想在我用于 android 项目演示的这段代码中找到 c、d、p 和 q 参数。
https://en.wikipedia.org/wiki/RSA_(cryptosystem)#Key_distribution
这是我的代码
public class RSA {
private final static String RSA = "RSA";
public static PublicKey puk;
public static PrivateKey prk;
public static void generateKey() throws Exception {
KeyPairGenerator gen = KeyPairGenerator.getInstance(RSA);
gen.initialize(512, new SecureRandom());
KeyPair keyPair = gen.generateKeyPair();
puk = keyPair.getPublic();
prk = keyPair.getPrivate();
}
}
请问如何从此代码中获取这些值?
我不记得确切的映射,但如果您将 public 和私钥转换为它们的 RSA 特定类型,您可以访问所有值:
RSAPublicKey puk = (RSAPublicKey) keyPair.getPublic();
RSAPrivateCrtKey prk = (RSAPrivateCrtKey) keyPair.getPrivate();
System.out.println("p: " + prk.getPrimeP());
System.out.println("q: " + prk.getPrimeQ());
...
参见 RSAPublicKey and RSAPrivateCrtKey