【发布时间】:2018-09-12 16:24:13
【问题描述】:
是否可以使用 KeyPairGenerator 在 java 中生成 ecdsa 32 字节私钥?我的意思是 keys.getPublic.getEncoded.length 将返回 32 我尝试生成私钥,但大小为 144 字节
//keys.getPrivate.getEncoded.length - 144 bytes
val ecSpec: ECNamedCurveParameterSpec = ECNamedCurveTable.getParameterSpec("secp256k1")
val keyPairGenerator: KeyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "BC")
val secRandom = new SecureRandom()
keyPairGenerator.initialize(ecSpec, secRandom)
val keys = keyPairGenerator.generateKeyPair
//keys.getPrivate.getEncoded.length - 67 bytes
val keyPairGenerator: KeyPairGenerator = KeyPairGenerator.getInstance("EC")
keyPairGenerator.initialize(256)
val keys = keyPairGenerator.generateKeyPair
【问题讨论】:
-
欢迎来到stackoverflow。请通过该站点的tour 了解stackoverflow 的工作原理以及如何提出好的问题。然后回来edit你的问题。包括您尝试过的代码minimal reproducible example,以及任何错误消息。问具体问题。大多数人都乐于提供帮助,但不想为你做你的工作。诸如“我该如何做 x?”之类的问题。没有显示出任何研究工作的结果很可能会被忽略。
-
你的意思是
.getPrivate不是.getPublic; secp256k1 原始公钥(未压缩点)是 65 个字节而不是 32 个。