我目前正在 Mac 上开发 Java 应用程序。我知道有来自 Apple 的密钥库,我想在该密钥库中安全地存储密码。
根据Apple开发人员的说法,我可以获得密钥库 keyStore = KeyStore.getInstance("KeychainStore", "Apple");
现在我的问题是:如何存储密码以及如何再次取回密码?我已经阅读了很多关于密钥库的内容,但我不知道实现会是什么样子。
以及如何从 Windows / Linux 获取内置密钥库?
java.security.KeyStore不是为了处理密码而创建的。它是加密密钥和证书的存储设施。虽然您可以尝试使用它来存储密码,因为它可以存储私钥,但我建议您不要这样做,因为 KeyStore 的 API 很麻烦并且不是为您的用例而设计的。
https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html
您需要的是macOS 中的Keychain以及其他操作系统中的类似工具。由于您还询问有关 Windows 和 Linux 的问题,因此您可能对Java Keyring库感兴趣。它将密码存储在:
使用方法如下:
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);
}
Run Code Online (Sandbox Code Playgroud)
摇篮
implementation 'com.github.javakeyring:java-keyring:1.0.1'
Run Code Online (Sandbox Code Playgroud)
梅文
<dependency>
<groupId>com.github.javakeyring</groupId>
<artifactId>java-keyring</artifactId>
<version>1.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果您想支持 GNOME 以外的桌面环境,您可能必须提出自己的解决方案或搜索不同的库,但这应该可以帮助您入门。
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |