仅在密钥库中存储私钥,并使用java读取它

问题描述 投票:0回答:1

我想将私钥存储在 java 密钥库中。我的文件看起来像

-----BEGIN PRIVATE KEY-----
actual key
-----END PRIVATE KEY-----

我通过谷歌搜索得到的所有示例都涉及存储证书。我没有证书,也不需要它。

如何通过命令行在 Linux 机器上仅存储私钥? (java中似乎有一些示例,但是系统管理员将在将部署应用程序的所有计算机中添加它,因此需要命令行方法)

我需要从java应用程序读取私钥,我希望类似于

  final Key key = (PrivateKey) keystore.getKey(alias, password.toCharArray());

可以工作,但无法测试它,因为我一开始就无法存储私钥。

我需要从我的 java 应用程序中读取该密钥

java cryptography private-key jks
1个回答
0
投票

private static void saveKeyToKeyStore(SecretKey SecretKey) 抛出异常 { KeyStore keyStore = KeyStore.getInstance(KEYSTORE_TYPE); keyStore.load(null, KEYSTORE_PASSWORD.toCharArray()); // 创建一个新的空KeyStore

    // Store the secret key in the KeyStore
    KeyStore.SecretKeyEntry secretKeyEntry = new KeyStore.SecretKeyEntry(secretKey);
    KeyStore.ProtectionParameter protectionParam = new KeyStore.PasswordProtection(KEYSTORE_PASSWORD.toCharArray());
    keyStore.setEntry(SECRET_KEY_ALIAS, secretKeyEntry, protectionParam);

    // Save the KeyStore to a file
    try (FileOutputStream keyStoreOutputStream = new FileOutputStream(KEYSTORE_FILE)) {
        keyStore.store(keyStoreOutputStream, KEYSTORE_PASSWORD.toCharArray());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.