mvn --encrypt-master-password <password> :选择 <password> 的好习惯?应该是哪个级别的隐私?

Posted

技术标签:

【中文标题】mvn --encrypt-master-password <password> :选择 <password> 的好习惯?应该是哪个级别的隐私?【英文标题】:mvn --encrypt-master-password <password> : Good practice for choosing <password>? Which level of privacy should it be? 【发布时间】:2013-05-01 13:58:09 【问题描述】:

我正在学习使用maven password encryption 功能,我想知道如何选择参数&lt;password&gt;。有两点不明白:

1) mvn --encrypt-master-password foobar 总是会给出不同的encrypted master password

由于encrypted master password 总是不同的,我只看到两种可能性:

    本地属性存储在某处,以便可用于解密encrypted master password 以获取master password。也就是说我们的encrypted server passwords只能在本地使用。 什么都没有存储,master password 没用,根本不重要。

所以,我的问题是:

本地存储什么?我的master password 会保持安全吗?还有第三种我没有想到的可能性吗?

2) maven网站上是这样写的:

另请注意,加密密码可以由拥有主密码和设置安全文件的人解密。如果您预计可能会检索到 settings.xml 文件,请确保此文件安全(或单独存储)。

如果settings security file 是要保护的东西,我为什么还要选择一个强主密码?我不能只使用 foobar 并保持我的 settings security file 安全吗?

此外,拥有这两个文件(settings security filesettings file)的人似乎不需要 master password 来连接到 maven 服务器。他可以在不知道密码的情况下使用我们的身份。 master password 是“仅”需要解密 servers passwords (以获取纯文本)。但话又说回来,保护settings security file 应该是可行的方法,而master password 将毫无用处。

我的问题:

master password 有多重要?我必须记住它吗?我可以使用一个很长的随机短语并永远忘记它吗?

PS:我找不到答案here。

【问题讨论】:

【参考方案1】:

第一个密码仅用于生成主密码,然后您可以忘记它。它是使用加密机制和伪随机组件生成的。因此,应该无法破译它。除了您的安全设置文件中的主密码之外,没有其他任何内容存储在本地,并且不会再次提示或询问。

此主密码用于加密和解密设置文件中的密码。它与用户输入的密码具有相同的值,但几乎不可能推断出来。

然后:

    除了您的安全设置文件中的主密码外,没有其他任何内容存储在本地,并且不会再次提示或询问。所有的安全都存在于安全设置文件的安全中。

    主密码并不重要,您可以立即忘记。你可以使用任何你想要的东西。

我不喜欢这种方法来保护我的密码,我想要一个真正的密码加密机制,而不是存储真正的主密码。带有密码策略的公私钥似乎更好。

【讨论】:

您能解释一下吗?...“第一个密码仅用于生成主密码,然后您可以忘记它。” - 所以,如果我理解得很好,我可以简单地在我的脑海中创建一个主密码而不使用 mvn --encrypt-master-password 并将其保存在 securitySettings.xml 作为 并且结果应该是相同的?? 不,你不能。 Maven 使用“秘密”密码短语“settings.security”加密您的主密码,因此它始终可以解密它。随机性是因为每个加密密码看起来像:'' base64( salt[8] pad[1] encrypted[n] padding[pad] ) ''盐和填充是完全随机的。解密算法使用盐来创建实际的密码密钥。

以上是关于mvn --encrypt-master-password <password> :选择 <password> 的好习惯?应该是哪个级别的隐私?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Maven IDEA Plugin Usage(mvn idea:idea/mvn idea:clean/mvn idea:project)

idea mvn 踩坑 使用mvn 打包

“mvn clean install”与“mvn install”有何不同?

mvn install 包含 mvn clean吗

重定向“mvn package”或“mvn compile”命令的输出目录

“mvn clean install”和“mvn clean verify install”有啥区别?