2017-08-08 48 views
-1

我正在使用加密來加密我的數據。 我正在使用java 1.8.0_131和RSA/ECB/PKCS1Padding算法版本2.無法使用java加密我的數據JCE

在我的本地環境中,我能夠加密並找到提供程序。 在我的測試環境中使用相同的Java版本我得到以下異常:

No installed provider supports this key: (null)

我們使用字節數組加密 ,關鍵是不爲空

我們所做的事情:

public static byte[] encrypt(PublicKey publicKey, String algorithm, int keyVersion, byte[] clearData) throws EncryptionException { 

     try { 

      Cipher cipher = Cipher.getInstance(algorithm); 
      cipher.init(Cipher.ENCRYPT_MODE, publicKey); 
      return addHeader(keyVersion, cipher.doFinal(clearData)); 

     } catch (Throwable t) { 
      logger.error("Failed to encrypt data", t); 
      throw new EncryptionException("Failed to encrypt data", t); 
     } 
    } 

爲什麼在我的測試環境中找不到提供程序?

謝謝

+1

請顯示您的代碼。看起來像你輸入的密鑰是'null' – Jens

+0

可能重複[InvalidKeyException java.security.InvalidKeyException:沒有安裝的提供程序支持此項:(空)](https://stackoverflow.com/questions/26517944/invalidkeyexception-java- security-invalidkeyexception-no-installed-provider-sup) –

+0

嘿謝謝。如果你的意思是算法的關鍵,那麼沒有它肯定不是空,我們有一個日誌,否則指示 – Alexsh

回答

0

公鑰因爲公鑰的路徑不正確而爲空。 我們的日誌只寫入非空的公鑰版本。 所以我們錯過了那一個。

相關問題