使用this教程,我创建了一个Java程序,可以使用SHA256withRSA算法对文档进行签名。在输出中,我得到一个公钥和一个签名文件。
我尝试用openssl验证我的文件,但我不能......我在网上搜索,我发现我需要一个标准的.pem键,所以我的问题是:我怎样才能转换我对pem格式的关键?或者我可以在Java中生成.pem键吗?如果这是一种错误的方式,我该如何验证我的签名呢?
答案 0 :(得分:1)
PEM文件包含以base64编码的公钥二进制数据,并以64个字符的行分割。该文件还包含标题-----BEGIN PUBLIC KEY-----
和页脚-----END PUBLIC KEY-----
Java没有PEM的原生转换器,但您可以使用bouncycastle
PEMWriter pemWriter = new PEMWriter(new FileWriter(file));
pemWriter.writeObject(publicKey);
pemWriter.flush();
pemWriter.close();
或者,您可以使用
使用二进制密钥格式使用openssl验证签名 -keyform DER
然后将publicKey的内容保存在文件
中 byte publicKeyDer[] = publicKey.getEncoded()