2015-09-03 39 views
1

我想解密一個字符串使用AES和我使用jce.jar來做到這一點。

我有以下方法來解密。

public String decrypt(String strToDecrypt) { 
     try { 
      Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); 
      cipher.init(Cipher.DECRYPT_MODE, secretKey); 
      setDecryptedString(new String(cipher.doFinal(Base64 
        .decodeBase64(strToDecrypt)))); 
     } catch (Exception e) { 
      System.out.println("Error while decrypting: " + e.toString()); 
     } 
     return null; 
    } 

但試圖解密時,我得到了以下錯誤。

java.lang.IllegalAccessError: tried to access class javax.crypto.Cipher$Transform from class javax.crypto.Cipher 

我正在使用java_sdk_1.7.0版本。 這是我的SDK版本的問題嗎?有沒有人有這個想法?

+0

'javax.crypto.Cipher'應該包含在JDK 1.7中。你爲什麼要添加一個jce.jar? –

+0

我使用JDK 1.7中包含的相同jce.jar。它在websphere上正常運行,但不在openshift jboss上運行。我必須爲此配置somethng o jboss嗎? – user2260808

回答

-1

由於jms和openjdk中的jce.jar衝突,此加密錯誤即將到來。通過在standalone.xml中註釋掉這一行來解決問題:

<--module name="org.jboss.genericjms.provider" slot="main"--> 
相關問題