gpt4 book ai didi

java - 如何将程序密码存储在 OS keystore 中?

转载 作者:行者123 更新时间:2023-12-01 11:51:37 25 4
gpt4 key购买 nike

我目前正在 Mac 上开发 Java 应用程序。我知道有来自 Apple 的 keystore ,我想在该 keystore 中安全地存储密码。

根据 Apple 开发人员的说法,我可以通过 keyStore = KeyStore.getInstance("KeychainStore", "Apple"); 获取 keystore 。

现在我的问题是:如何存储密码以及如何再次取回密码?
我已经阅读了很多关于 keystore 的内容,但我不知道实现会是什么样子。

以及如何从 Windows/Linux 获取内置 keystore ?

最佳答案

java.security.KeyStore不是 创建用于处理密码。它是加密 key 和证书的存储工具。虽然您可以尝试使用它来存储密码,因为它可以存储私钥,但我建议您不要这样做,因为 KeyStore 的 API 很麻烦并且不是为您的用例设计的。
https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html

如何在 Windows、Linux 或 macOS 中存储密码

你需要的是 Keychain在 macOS 和其他操作系统中的类似工具中。由于您还询问 Windows 和 Linux,您可能对 Java Keyring 感兴趣。图书馆。它将密码存储在:

  • Keychain macOS
  • Credential Manager在 Windows
  • DBus Secret Service在 GNOME 上

  • 以下是如何使用它:
    public static void main(String[] args) throws Exception {
    Keyring keyring = Keyring.create();
    String serviceName = "test-app";
    String accountName = "test-account";
    keyring.setPassword(serviceName, accountName, "test-password");
    String password = keyring.getPassword(serviceName, accountName);
    System.out.println(password);
    }

    Gradle
    implementation 'com.github.javakeyring:java-keyring:1.0.1'

    马文
    <dependency>
    <groupId>com.github.javakeyring</groupId>
    <artifactId>java-keyring</artifactId>
    <version>1.0.1</version>
    </dependency>

    如果您想支持 GNOME 以外的桌面环境,您可能必须提出自己的解决方案或搜索不同的库,但这应该可以帮助您入门。

    关于java - 如何将程序密码存储在 OS keystore 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60985877/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com