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 功能,我想知道如何选择参数<password>
。有两点不明白:
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 file
和 settings file
)的人似乎不需要 master password
来连接到 maven 服务器。他可以在不知道密码的情况下使用我们的身份。 master password
是“仅”需要解密 servers passwords
(以获取纯文本)。但话又说回来,保护settings security file
应该是可行的方法,而master password
将毫无用处。
我的问题:
master password
有多重要?我必须记住它吗?我可以使用一个很长的随机短语并永远忘记它吗?
PS:我找不到答案here。
【问题讨论】:
【参考方案1】:第一个密码仅用于生成主密码,然后您可以忘记它。它是使用加密机制和伪随机组件生成的。因此,应该无法破译它。除了您的安全设置文件中的主密码之外,没有其他任何内容存储在本地,并且不会再次提示或询问。
此主密码用于加密和解密设置文件中的密码。它与用户输入的密码具有相同的值,但几乎不可能推断出来。
然后:
除了您的安全设置文件中的主密码外,没有其他任何内容存储在本地,并且不会再次提示或询问。所有的安全都存在于安全设置文件的安全中。
主密码并不重要,您可以立即忘记。你可以使用任何你想要的东西。
我不喜欢这种方法来保护我的密码,我想要一个真正的密码加密机制,而不是存储真正的主密码。带有密码策略的公私钥似乎更好。
【讨论】:
您能解释一下吗?...“第一个密码仅用于生成主密码,然后您可以忘记它。” - 所以,如果我理解得很好,我可以简单地在我的脑海中创建一个主密码而不使用 mvn --encrypt-master-password 并将其保存在 securitySettings.xml 作为'' 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)
“mvn clean install”与“mvn install”有何不同?