在没有 Bouncy Castle 的情况下,如何在 java 中从私有(ecdsa)生成公钥?
Posted
技术标签:
【中文标题】在没有 Bouncy Castle 的情况下,如何在 java 中从私有(ecdsa)生成公钥?【英文标题】:how I can make public key from private (ecdsa) in java without Bouncy Castle? 【发布时间】:2017-11-06 20:26:55 【问题描述】:我有私钥 (ecdsa,secp256r1)。
private final static String SHA = "SHA-256";
private final static String MODE = "EC";
private final static String PROV = "SunEC";
private final static String ECC_ALGO = "secp256r1";
public static KeyPair eccKeyGen()
KeyPairGenerator kpg;
KeyPair kp = null;
try
kpg = KeyPairGenerator.getInstance(MODE, PROV);
ECGenParameterSpec ecsp;
ecsp = new ECGenParameterSpec(ECC_ALGO);
kpg.initialize(ecsp);
kp = kpg.genKeyPair();
return kp;
catch (Exception e)
System.out.println("Key generation error.");
e.printStackTrace();
return kp;
如何在没有 Bouncy Castle 的情况下在 java 中从中生成公钥?
【问题讨论】:
How to get the RSA public-key from private-key Object in Java的可能重复 【参考方案1】:假设您的私钥是 OpenSSH 格式,您可以为 ssh-keygen
使用 -y
选项。例如,如果您的私钥包含在mykey
中,则以下命令将生成其公钥
ssh-keygen -y -f mykey > mykey.pub
【讨论】:
“假设你的私钥是 OpenSSH 格式”我如何将它插入到 Java 代码中? 既然您添加了一些代码示例,我想这不是丢失您的公钥的问题。您是否在问是否有其他 JCE 提供商可以做与 Bouncy Castle 相同的事情?以上是关于在没有 Bouncy Castle 的情况下,如何在 java 中从私有(ecdsa)生成公钥?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Bouncy Castle解密AES / CCM加密密文?
使用 RSA Bouncy Castle 加密/解密无法正常工作