【问题标题】:How does mvn --encrypt-master-password <password> work?mvn --encrypt-master-password <密码> 是如何工作的?
【发布时间】:2013-03-25 06:35:26
【问题描述】:

我想知道这个命令(mvn --encrypt-master-password)使用的算法或技术。每次我运行它都会产生不同的输出。我假设它需要系统时间作为种子参数。

【问题讨论】:

    标签: maven password-protection password-encryption password-generator


    【解决方案1】:

    加密机制本身不在 maven 代码库中。它位于名为plexus-cipher 的库中。它总是在 Maven 发行版上。我的是 lib/plexus-cipher-1.7.jar3.0.5 maven 版本。

    实际密码是AES/CBC/PKCS5Padding。用于块链接的密码和 IV 的密钥是在提供的密码(编码为 UTF-8)上迭代 SHA-256-ing 并与特定于 JVM 配置(通常为 SHA1PRNG)的 64 位随机盐连接一次或两次。

    这里没有什么大惊喜。它似乎是现在每个其他灵魂都在使用的相同格式。

    血淋淋的细节可以在GitHub project page上阅读源代码

    【讨论】:

    • 所以64位随机盐每次都提供唯一性,但是盐也需要种子,是系统时间还是其他?
    • 取决于它首先找到的随机 PRNG 实现。例如,在 linux 上,NativePRNG 初始化自己,从/dev/random 读取其种子,这导致了性能混乱。我不知道后备SHA1PRNG 使用了哪些系统资源。
    • 谢谢您的解释
    猜你喜欢
    • 2013-05-01
    • 2015-06-29
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多