2015-07-20 53 views
7

我試圖加密我的settings.xml中的服務器密碼,並且在嘗試部署工件時收到此異常。Maven密碼加密BadPaddingException

Caused by: javax.crypto.BadPaddingException: Given final block not properly padded 
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:811) 
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:676) 
    at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:313) 
    at javax.crypto.Cipher.doFinal(Cipher.java:2087) 
    at org.sonatype.plexus.components.cipher.PBECipher.decrypt64(PBECipher.java:185) 
    ... 18 more 

這裏是從XML

<server> 
      <id>server</id> 
      <username>username</username> 
      <password>{N8AF8BmQ5x8HZX/yrlrP1QiKNMEdoXWyBFZd/*zIabY=}</password> 
     </server> 

相同的異常也發生了我的主密碼的摘錄,我只是按照說明這裏 https://maven.apache.org/guides/mini/guide-encryption.html 創造了一個安全的settings.xml像指導,執行這兩個命令並將加密密碼複製到適當的xml文件中。

mvn --encrypt-master-password <password> 
mvn --encrypt-password <password> 
+3

在極少數情況下有一個逃跑問題,不知道這是否發生在這裏。考慮重新生成emp和ep(它們的值每次都會有所不同) –

+0

我假定emp和ep表示主服務器和服務器密碼? – gary69

+0

-emp = --encrypt-master-password,-ep = --encrypt -password(請參閱mvn -h或mvn --help :)) –

回答

3

在極少數情況下有一個逃避問題,這可能發生在這裏。考慮重新生成masterpassword(使用-emp或--encrypt-master-password)和/或密碼(使用-ep或--encrypt-password)。他們的價值觀每次都會有所不同。

1

也許被你意外複製粘貼錯誤的參數:

--encrypt-master-password 

,並把輸出Settings.XML中,而不是:

--encrypt-password 

這讓我陷入麻煩。 (戴恩密碼到期政策)