java - 查找 RSA 参数

标签 java android rsa

我想在我用于 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();

    }
}

请问如何从这段代码中获取这些值?

最佳答案

我不记得确切的映射,但如果您将公钥和私钥转换为其 RSA 特定类型,则可以访问所有值:

    RSAPublicKey puk = (RSAPublicKey) keyPair.getPublic();
    RSAPrivateCrtKey prk = (RSAPrivateCrtKey) keyPair.getPrivate();
    System.out.println("p: " + prk.getPrimeP());
    System.out.println("q: " + prk.getPrimeQ());
    ...

参见RSAPublicKeyRSAPrivateCrtKey

关于java - 查找 RSA 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114797/

相关文章:

java - Netty 握手问题

java - 在 Apache POI API 中提取电子表格列中的数据

android - 如何设置闹钟在固定时间正确触发?

java - 如何从 Android studio 中的 TextView 解码 RSA 公钥(在 java 中)

java - 为什么对于给定的类不能同时使用 extends 和 throws

Java : How to get type of List<?>

android - 为什么我的应用程序不调用电话?

android - 如何更改输入的值 react native

encryption - RSA 私钥的哪些部分是保密的?

excel - VBA:如何根据 VBA 中的私钥生成带有 RS256 的签名?