我想知道这个命令使用的算法或技术(mvn——encrypt-master-password)。每次运行它都会产生不同的输出。我假设它将系统时间作为种子参数。
加密机制本身并不在maven代码库中。它位于一个名为plexus-cipher
的库中。它总是在maven发行版上。我的是lib/plexus-cipher-1.7.jar
是3.0.5
的maven版本。
实际密码为AES/CBC/PKCS5Padding
。密码的密钥和块链的IV是在提供的密码(编码为UTF-8)上迭代SHA-256
-ing,并与jvm配置特定的(通常是SHA1PRNG
) 64位随机盐连接一次或两次而得到的。
这里没有什么大的惊喜。这首歌似乎和现在其他所有灵魂都在使用的格式是一样的。
可以在GitHub项目页面