首页 > 解决方案 > 在 Java 中使用 base64 编码的公钥

问题描述

有一个应用程序可以使用以下命令创建 base64 编码的公钥:

openssl ecparam -genkey -name prime256v1 -out ecdsa.pem
openssl ec -noout -text -conv_form compressed -in ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64

如何在 Java 中使用此公钥?根据我的研究,它应该可以使用此代码,但我得到一个异常,即密钥太长:

EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode("base64-from-above");
KeyFactory keyFactory = KeyFactory.getInstance("EC");
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);

标签: javaopensslcryptographyecdsasasl

解决方案


推荐阅读