2009-08-14 31 views
0

我有一個來自外部公司的消息,該公司已經使用Java對我們的公鑰進行了加密。Java和C++加密協議互操作性

具體執行加密的Java代碼 -

//get instance of cipher using BouncyCastle cryptography provider 
    Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC"); 

    //initialize the cipher with the public key pulled from the X509 certificate 
    cipher.init(Cipher.ENCRYPT_MODE, publicKey); 

我需要能夠使用我們在Solaris上使用C/C++的私鑰來解密這個消息。 我曾嘗試使用Crypto ++庫,並且可以使用Crypto ++成功編碼解碼消息,但無法解決如何解碼從java端加密的消息。

具體而言,我嘗試使用RSAES_PKCS1v15_Decryptor但這似乎並沒有工作。

沒有人有任何建議,如何可以執行解密如

  1. 所需的加密++代碼(理想)
  2. 替代RSA/ECB/PKCS1Padding從Java側使用
  3. 替代開源的C庫我可以嘗試
  4. 別的...

回答

2

我設法得到這個工作通過改變Java代碼使用

Cipher cipher = Cipher.getInstance("RSA/NONE/PKCS1Padding", "BC"); 

這然後用在加密++側RSAES_PKCS1v15_Decryptor相匹配。