2012-10-16 94 views
3

嗨,我在Java安全初學者,我遇到了以下問題,打電話時:Java安全類轉換異常

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); 

我得到了錯誤:

java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi

有5個jar文件的支付網關加密在我的war文件中:

  • cryptix-jce-api.jar
  • CRYPTIX-JCE-provider.jar
  • CRYPTIX-消息api.jar文件
  • CRYPTIX-OpenPGP的-provider.jar
  • CRYPTIX-PKI-api.jar文件

沒有這些5 JAR文件然後Cipher.getInstance()的作品,但這是不可能的,因爲我需要JARs的支付信息加密。

任何人都可以告訴我如何克服這個問題的路徑?

+0

Hi @ Wilson60,你可能想要檢查java和cryptix的版本。 –

+0

Cryptix已經死亡,並且一直是永恆的。你爲什麼認爲你需要它? –

+0

嗨,感謝您的回答,但這是項目在幾年前開始的。 – Wilson60

回答

8

Powermockito不能增強javax.crypto中的類,所以你可能在類級別添加以下標註:

@PowerMockIgnore("javax.crypto.*") or @PowerMockIgnore({"javax.crypto" })

+0

謝謝!這解決了我在加密測試環境中使用PowerMock時遇到的問題 – Pada