【发布时间】:2018-08-08 09:50:12
【问题描述】:
我已经使用椭圆曲线生成了一个公钥,但是每当我获得密钥的编码时,它就会改变。我想将编码用于我正在实施的区块链的公共地址。见下文
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PublicKey;
import java.security.spec.ECGenParameterSpec;
class Scratch {
public static void main(String[] args) throws Exception {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1");
keyGen.initialize(ecSpec);
KeyPair kp = keyGen.generateKeyPair();
PublicKey k = kp.getPublic();
byte[] one = k.getEncoded();
byte[] two = k.getEncoded();
System.out.println(one);
System.out.println(two);
}
}
有输出
[B@4eec7777
[B@3b07d329
有人知道为什么会这样吗?我的猜测是这是预期的行为,我只是在这里误解了一些基本的东西。
【问题讨论】:
标签: encoding cryptography blockchain elliptic-curve encryption-asymmetric