Java 如何从PrivateKey字符串生成EC密钥对?

Java 如何从PrivateKey字符串生成EC密钥对?,java,public-key-encryption,Java,Public Key Encryption,我生成了这样的密钥对: ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1"); KeyPairGenerator generator = KeyPairGenerator.getInstance("EC"); generator.initialize(ecSpec, new SecureRandom()); KeyPair kp = generator.generateKeyPair

我生成了这样的密钥对:

ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1");
KeyPairGenerator generator = KeyPairGenerator.getInstance("EC");
generator.initialize(ecSpec, new SecureRandom());
KeyPair kp = generator.generateKeyPair();
然后我从密钥对生成字符串:

String privateKeyString = Base64.getEncoder().encodeToString(kp.getPrivate().getEncoded();

因此,我的第一个问题是如何从
privateKeyString
生成PrivateKey对象,第二个问题是如何从PrivateKey对象生成公钥/密钥对?

您不能。如果这是可能的话,PKI将毫无用处。你的问题没有道理。要么需要非对称加密,要么需要对称加密。不是同时两个。@user207421我认为可以从私钥/密钥重新创建这对密钥?第一个问题:
KeyFactory.getInstance(“EC”).generatePrivate(新的PKCS8EncodedKeySpec(Base64.getDecoder().decode(Base64))
。看见除非你有一个私钥证书,它可能也包含公钥信息。你这么认为是为什么?如果您可以从除自身编码以外的任何内容重新创建私钥,那么它就不是私钥,而且整个PKI系统将毫无意义。