在桌面软件中存储凭据的最安全方式

Most secure way of storing credentials in a desktop software

我有一个 Java 桌面程序,我想在其中存储以最安全的方式登录的凭据。我考虑过使用数据库,但我对此有一种不好的感觉,我宁愿将它存储在用户端本地,但我也需要它非常安全。该软件基本上以安全为中心。

所以我考虑使用几轮非常强大的加密,如果可能的话。然后我需要找到如何安全地存储这些凭据。

您将如何进行?你有什么建议?

如果您想将密码存储在数据库中,最首选的方法是对密码进行散列处理。这被大多数网络应用程序使用,例如 WordPress。

您可以使用算法加密和解密密码,但您不能'unhash'密码。

如何授权?

假设您的密码是“12345”并且您将其存储在数据库中为“$1$O3JMY.Tw$AdLnLjQ/5jXF9 .MTp3gHv/" 散列形式。

因此,每当用户输入他的密码时,您都会再次对该密码进行散列处理并比较两个散列密码。你不t/can不'decrypt'从数据库中比较它们。散列后无法看到用户密码的明文。

检查此 link 以了解 java 中的散列: How can I hash a password in Java?