8
我想知道這個命令使用的算法或技術(mvn --encrypt-master-password)。每次運行它都會產生不同的輸出。我假設它將系統時間作爲種子參數。mvn --encrypt-master-password <password>如何工作?
我想知道這個命令使用的算法或技術(mvn --encrypt-master-password)。每次運行它都會產生不同的輸出。我假設它將系統時間作爲種子參數。mvn --encrypt-master-password <password>如何工作?
加密機制本身不在maven代碼庫中。它位於名爲plexus-cipher
的圖書館。它始終在maven發行版上。我的lib/plexus-cipher-1.7.jar
是3.0.5
的maven版本。
實際密碼是AES/CBC/PKCS5Padding
。塊鏈接的密碼和IV的密鑰衍生迭代爲SHA-256
- 通過提供的密碼(編碼爲UTF-8)與特定於JVM配置(通常爲SHA1PRNG
)的64位隨機鹽連接一次或兩次。
這裏沒有什麼大的驚喜。它似乎與其他靈魂現在使用的格式相同。
底層細節可以發現閱讀的GitHub project page
的來源,這樣64位隨機鹽提供了獨特每次,但鹽需要種子爲好,是它的系統時間或者其他什麼東西? – SDS
取決於它首先發現的隨機PRNG實現。例如,在linux上,'NativePRNG'初始化自己從'/ dev/random'讀取它的種子,這是造成性能擾亂的原因。我無法確定回退'SHA1PRNG'使用的系統資源。 –
謝謝你的解釋 – SDS