首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以文本格式存储KeyStoreGenerator生成的私钥(例如,vault store) - Java

以文本格式存储KeyStoreGenerator生成的私钥(例如,vault store) - Java
EN

Stack Overflow用户
提问于 2018-09-26 22:02:15
回答 1查看 406关注 0票数 1

出于安全目的,我使用以下代码来创建公钥和私钥。

public KeyGenerator(int keylength) throws NoSuchAlgorithmException, NoSuchProviderException {
    this.keyGen = KeyPairGenerator.getInstance("RSA");
    this.keyGen.initialize(keylength);
}

public void createKeys() {
    this.pair = this.keyGen.generateKeyPair();
    this.privateKey = pair.getPrivate();
    this.publicKey = pair.getPublic();
}

public PrivateKey getPrivateKey() {
    return this.privateKey;
}

public PublicKey getPublicKey() {
    return this.publicKey;
}

public void writeToFile(String path, byte[] key) throws IOException {
    File f = new File(path);
    f.getParentFile().mkdirs();

    FileOutputStream fos = new FileOutputStream(f);
    fos.write(key);
    fos.flush();
    fos.close();
}

public static void main(String[] args) {
    KeyGenerator kg;
    try {
        kg = new KeyGenerator(2048);
        kg.createKeys();
        System.out.println(kg.getPublicKey().getFormat()); // this prints out X.509

        System.out.println(kg.getPrivateKey().getFormat()); // this prints out PKCS#8

        kg.writeToFile(PUBLIC_KEY_PATH, kg.getPublicKey().getEncoded());
        kg.writeToFile(PRIVATE_KEY_PATH, kg.getPrivateKey().getEncoded());
    } catch (NoSuchAlgorithmException | NoSuchProviderException e) {
        System.err.println(e.getMessage());
    } catch (IOException e) {
        System.err.println(e.getMessage());
    }

}

我需要找到一种方法将私钥(如下图所示)以以下格式存储在电子仓库中。此时,当我用文本编辑器打开钥匙时,我得到的结果如下所示。

有没有办法将这个PKCS#8转换成适合存储在文件中的编码?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-09-26 22:59:31

我现在觉得自己很愚蠢,因为我已经在上面花了好几个小时了。我会把答案放在这里。

所以问题是,我想以字符串的形式存储(在文本文件中,二进制文件的内容-就像上图中描述的那样)

如果您使用的是基于unix的系统,则可以通过以下方式轻松实现:

base64 filename.key > string.txt

现在,如果你想要回你的二进制文件,就像下面这样简单:

base64 -D string.txt > filename-clone.key

所以这不是与java相关问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52519603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档