gpt4 book ai didi

java - 如何在java中安全地存储用户密码以便在整个应用程序中重用

转载 作者:行者123 更新时间:2023-12-01 04:46:07 25 4
gpt4 key购买 nike

在我的 Java 应用程序启动时,我让用户输入他的用户名和密码。这些凭据存储在 ConnectionKey 对象中,该对象在应用程序对 Web 服务进行查询时使用。每个查询都需要有效的用户名和密码。此外,这些查询在应用程序的整个生命周期中执行。

现在,我将用户密码简单地存储为 ConnectionKey 中的字符串。我知道这是非常不安全的,我想通过某种加密来使其更加安全。但是,我需要能够检索原始用户密码才能查询此 Web 服务。

  • 如何安全地存储用户密码,同时在整个应用程序中仍然使用该密码?

谢谢!

编辑

ConnectionKey 只是一个类,如下所示:

class ConnectionKey {

private final String user;
private final String pass;
private final String server;

public ConnectionKey(String user, String pass, String server) {
this.user = user;
this.pass = pass;
this.server = server;
}

}

最佳答案

首先,我确信您已阅读以下有关 SO Why is char[] preferred over String for passwords? 的问题这意味着如果您有纯密码,至少是 char[] 而不是 String

除此之外,为了安全地存储用户密码,您应该使用一种众所周知的、经过充分测试的(通常是单向的)加密算法对其进行加密。

这可能与您的要求以及如何使用 ConnectionKey 相矛盾,但问题很容易加密您的密码并更改使用密码的 api/方法。

例如,如果您尝试在服务器端验证 ConnectionKey,请更改该方法以使用加密密码,即对已知密码使用相同的加密算法,并将其与传入的加密密码进行比较。

关于java - 如何在java中安全地存储用户密码以便在整个应用程序中重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822494/

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