【发布时间】:2019-04-18 10:26:52
【问题描述】:
我有一个普通的字符串,我使用 Java util 中的 Base64 类对其进行编码,并将其传递给 ECPublicKey 构造函数,但它不起作用。我们是否必须以某种其他格式进行编码才能将其传递给 ECPublicKey 构造函数?
我也尝试过创建 keyfactory 方法,如下所示,编码 obj 是 Base64 编码的字符串
byte[] keyBytesPublic = Base64.getDecoder().decode(encodingObj);
X509EncodedKeySpec specPublic = new X509EncodedKeySpec(keyBytesPublic);
KeyFactory keyFactory = KeyFactory.getInstance("EC");
ECPublicKey public_key12 = (ECPublicKey) keyFactory.generatePublic(specPublic);
String obj = "{ "+
"hello world "+
"}";
byte[] encodingObj = Base64.getEncoder().encode(obj.getBytes());
byte[] keyBytesPublic = Base64.getDecoder().decode(encodingObj);
首先尝试从关键工厂生成
X509EncodedKeySpec specPublic = new X509EncodedKeySpec(keyBytesPublic);
KeyFactory keyFactory = KeyFactory.getInstance("EC");
ECPublicKey public_key12 = (ECPublicKey) keyFactory.generatePublic(specPublic);
PublicKey publicKey = keyFactory.generatePublic(specPublic);
或者如果我直接在构造函数中传递编码对象
ECPublicKey publicKey1 = new ECPublicKeyImpl(encodingObj);
【问题讨论】:
-
需要更多详细信息:(1) 示例输入字符串,(2) 错误消息。更好的是,minimal reproducible example。
标签: java encryption cryptography key rsa