【问题标题】:Generate ECPublicKey in java在java中生成ECPublicKey
【发布时间】:2013-08-26 05:01:42
【问题描述】:

我是 java ecc 加密的新手。所以我从 java 卡中得到了 ECC 公钥数据数组。大小为 49 字节长度。所以我需要生成 Eccpublic 密钥。所以我创建了公钥。但它给出了错误:

java.security.spec.InvalidKeySpecException:无法识别编码的密钥规范

这是我的代码。如何使用数据数组生成 Eccpublickey?

byte[] pub = new byte[] {
    /*(Public data) 49 length byte ARRAY
    */


     };

    System.out.println("Length :" + pub.length);
    X509EncodedKeySpec ks = new X509EncodedKeySpec(pub);

    KeyFactory kf;
    try {
        kf = KeyFactory.getInstance("ECDH");

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return;
    }

    ECPublicKey remotePublicKey;

    try {
        remotePublicKey = (ECPublicKey) kf.generatePublic(ks);
    } catch (InvalidKeySpecException e) {
        e.printStackTrace();
        return;
    } catch (ClassCastException e) {
        e.printStackTrace();
        return;
    }
    System.out.println(remotePublicKey);

} catch (Exception e) {
    e.printStackTrace();
}

【问题讨论】:

  • 能否在数据数组中添加实际数据?

标签: java keystore public-key-encryption


【解决方案1】:

原因是代码不起作用,keyspec 不能在 ECC 中使用。所以我找到了如何在 ECC 中使用ECPublicKeySpec。在这里它有很好的解释。https://bitcointalk.org/index.php?topic=2899.0;wap2 谢谢。

【讨论】:

    猜你喜欢
    • 2017-07-27
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2021-10-05
    • 2015-07-18
    相关资源
    最近更新 更多