【发布时间】:2021-04-17 16:38:57
【问题描述】:
我有一个这样生成的 EC 密钥对:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("EC");
kpg.initialize(256);
KeyPair kp = kpg.generateKeyPair();
由于一些问题,我需要将此密钥对中的密钥作为字节数组发送。
我获取字节数组的方式就是调用:
val keyBytes = kp.public.encoded
我的目标是使用这个字节数组重建这个确切的密钥。
我试过了:
val kf = KeyFactory.getInstance("EC")
val pkSpec = X509EncodedKeySpec(keyBytes)
val publicKey = kf.generatePublic(pkSpec)
我的问题是 publicKey.encoded 字节数组与 keyBytes 数组不同。这是没有意义的。我认为这是因为这条线:
val pkSpec = X509EncodedKeySpec(keyBytes)
但我找不到任何关于此的好信息。
【问题讨论】:
标签: java kotlin encoding cryptography key