9

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

4

1 回答 1

8

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

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

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

血淋淋的细节可以在GitHub 项目页面上阅读源代码找到

于 2013-04-03T15:54:39.480 回答