首页 > 解决方案 > 无法从文件加载 RSA 公钥(Java)

问题描述

我使用 puttyGen 生成了一个公钥文件,如下所示:

在此处输入图像描述

生成包含以下内容的文件:

    ---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20200116"
AAAAB3NzaC1yc2EAAAABJQAAAQEA9/jf/WH+pfOHU0j9bVYjaPHp9V1F+Tau9Pwh
Zd30m389u8dCFQqWcAYIIbAFs5eE744bdztMpIC2HbqO9hCa5AAq1U2CD0XzWUFg
H5OC9krVSuhnsU6FAJoS2zz+I4P30cuLY98Kzxt6q8pouT3fIgRAmWaKpkO/ol46
APub5ZdTTTqHwpuzOKEI0iVkd6Lsqrp98kLnwCxUV3zyecZN/YsoRRpQaMbdfCfi
kc0qKjwVRNffLk4aCPB4X0yY/EYaeLmNObCuyHqvAojM5SsoB7xlFVLfoNLtnygj
Akxty2+3MO2rsO+dl++sPMNg3EK8pfT+igB0piR2dG9LpQf9Vw==
---- END SSH2 PUBLIC KEY ----

但是尝试从下面的这个方法中加载这个公钥完全没有运气:

    public static PublicKey getPublicKey(String fileName) throws Exception {
    FileReader reader = new FileReader(fileName);
    PemReader pemReader = new PemReader(reader);
    PemObject pemObj = pemReader.readPemObject();

    pemReader.close();
    X509EncodedKeySpec spec = new X509EncodedKeySpec(pemObj.getContent());
    KeyFactory kf = KeyFactory.getInstance("RSA", "BC");
    return kf.generatePublic(spec);     
}

结果 PemObject 始终为 null。按照找到的每个教程,有人帮助我。PemObject 和 PemReader 来自 org.bouncycastle.util.io.pem。*

我在做傻事吗?

标签: javaencryptionrsabouncycastlepublic-key

解决方案


推荐阅读