我想知道此命令 (mvn --encrypt-master-password ) 使用的算法或技术。每次我运行它都会产生不同的输出。我假设它需要系统时间作为种子参数。
最佳答案
加密机制本身不在 maven 代码库中。它位于一个名为 plexus-cipher
的图书馆中。 .它总是在 maven 发行版上。我的是在 lib/plexus-cipher-1.7.jar
正在 3.0.5
Maven 版本。
实际密码是 AES/CBC/PKCS5Padding
.密码的 key 和块链接的 IV 是通过迭代 SHA-256
推导出来的。 - 将提供的密码(编码为 UTF-8)与特定于 JVM 配置的(通常是 SHA1PRNG
)64 位随机盐连接一次或两次。
这里没有什么大惊喜。现在似乎每个其他灵魂都使用相同的格式。
血腥的细节可以在阅读 GitHub project page 上的源代码中找到。
关于maven - mvn --encrypt-master-password <密码> 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789984/