Java Git存储库的正确密码存储

Java Git存储库的正确密码存储,java,git,repository,password-protection,jgit,Java,Git,Repository,Password Protection,Jgit,我正在构建一个可以管理GIT存储库的应用程序 我选择将存储库信息存储在数据库中,但密码有问题 问题: 当我遇到https+密码安全存储库时,我需要存储密码。 如果我想在存储库上推送更改,我需要密码为纯文本 如果对密码进行哈希运算,则无法重复使用它。 有什么好的安全解决方案来存储这些密码,而不将它们存储为纯文本 我在JGit库中使用Java 谢谢。您将不得不在某种程度上将它们存储为纯文本:正如您所说,您的应用程序取决于是否有密码 存储它们的方式取决于您能够处理的用户交互级别,以及您正在运行的系统-

我正在构建一个可以管理GIT存储库的应用程序

我选择将存储库信息存储在数据库中,但密码有问题

问题: 当我遇到https+密码安全存储库时,我需要存储密码。 如果我想在存储库上推送更改,我需要密码为纯文本

如果对密码进行哈希运算,则无法重复使用它。
有什么好的安全解决方案来存储这些密码,而不将它们存储为纯文本

我在JGit库中使用Java


谢谢。

您将不得不在某种程度上将它们存储为纯文本:正如您所说,您的应用程序取决于是否有密码

存储它们的方式取决于您能够处理的用户交互级别,以及您正在运行的系统--在Gnome桌面上,您可以与
seahorse
集成,在Windows上,您可以使用凭据库。如果您无法集成,复制KeePass之类的方法可能是个好主意


如果您根本无法与用户交互,那么您也可以不加密地存储数据,因为您必须存储加密密钥。

您必须在某种程度上将它们存储为纯文本:正如您所说,您的应用程序依赖于密码

存储它们的方式取决于您能够处理的用户交互级别,以及您正在运行的系统--在Gnome桌面上,您可以与
seahorse
集成,在Windows上,您可以使用凭据库。如果您无法集成,复制KeePass之类的方法可能是个好主意


如果您根本无法与用户交互,那么您也可以不加密地存储数据,因为您必须存储加密密钥。

试试BouncyCastle[1]。它附带了大量的加密算法,并获得了自由许可


[1] 试试BouncyCastle[1]。它附带了大量的加密算法,并获得了自由许可


[1]

将它们存储在SQLite数据库(纯文本)中,并使用进行编码。存储密码的问题并不是很大,而是密码至少在使用时会在内存中。请将密码存储在SQLite数据库(纯文本)中,并使用密码对其进行编码。存储密码的问题并不是那么大,而是密码至少在您使用时会出现在您的内存中。这样可以避免以明文形式存储密码,但随后您就拥有了“加密密钥”,这也是您需要存储在某处的密码,至少是以代码形式存储的密码,如果可以使用基于字节码的编程语言(如Java)轻松地对其进行反编译,最好的选择是使用操作系统支持,但使用Java,您可能需要自行实现。这样可以避免使用明文,但您可以使用“加密密钥”,这同样是一种密码,需要存储在某个地方,至少在代码中,在使用基于字节码的编程语言(如Java)可以轻松地进行反编译的地方,最好的选择是使用操作系统支持,但使用Java,您可能需要自己实现。