私钥生产和根据私钥 找到PrivateKey对象
private static final BouncyCastleProvider PROVIDER = new BouncyCastleProvider();
try {
ECGenParameterSpec sm2Spec = new ECGenParameterSpec("sm2p256v1");
KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC", PROVIDER);
kpg.initialize(sm2Spec, new SecureRandom());
// 获取密钥对
KeyPair keyPair = kpg.generateKeyPair();
return keyPair;
} catch (Throwable e) {
throw new RuntimeException(e);
}
bytesToHex(keyPair.getPrivate().getEncoded()))) 方法内容是
Hex.encodeHexString(bs).toUpperCase() 返回了一个私钥字符串
我上面代码生成了一个私钥字符串 我现在想把这个私钥转换成PrivateKey 对象下面代码 但是报错了
KeyFactory keyFactory = KeyFactory.getInstance("EC",PROVIDER);
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(PRIVATE_KEY.getBytes());
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
System.out.printf(privateKey.getEncoded()+"");
return privateKey;
encoded key spec not recognized: failed to construct sequence from byte[]: unknown tag 19 encountered