2014-03-26 115 views
0

我試圖解密這是通過Java,但沒有運氣enrypted XML ... 我試圖像mcrypt_decrypt功能也跟着其他職位加密,但我不知道通過什麼確切的參數。PHP代碼解密XML通過Java

能有人幫我創建PHP函數來解密此。 我有加密XML的java代碼。

private static String encrypt(String encryptionKey, String value) throws Exception{ 

    //Instantiate the encrypter/decrypter 
    String paddedValue = value; 
    if ((value.length() % 8) != 0) { 
     for (int i= 0; i< (8 - value.length() % 8); i++) { 
      paddedValue += ' '; 
     } 
    }    

    byte[] iv ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 
    byte[] valueByteArray = paddedValue.getBytes("UTF8"); 

    SecretKeySpec desKey = new SecretKeySpec(encryptionKey.getBytes(), "DES"); 
    Cipher desCipher = Cipher.getInstance("DES/CBC/NoPadding"); 
    desCipher.init(Cipher.ENCRYPT_MODE, desKey, new IvParameterSpec(iv)); 

    // Encode the string into bytes using utf-8   
    // Encrypt 
    byte[] encryptedBytesArray = desCipher.doFinal(valueByteArray); 

    StringBuffer encryptedValue = new StringBuffer(1000000); 

    for (int i = 0, n = encryptedBytesArray.length; i < n; i++) { 
     String hex = (java.lang.Integer.toHexString(encryptedBytesArray[i] & 0XFF)); 
     if (hex.length() == 1) { 
      encryptedValue.append("0").append(hex); 
     } else { 
      encryptedValue.append(hex); 
     } 
    } 

    return encryptedValue.toString().toUpperCase(); 
} 

謝謝。

+0

什麼是最後的PHP代碼,你試過?也許分享加密和解密的XML也是一個好主意。 –

+1

'mcrypt_decrypt(MCRYPT_DES,$鍵,HEX2BIN($數據), 「CBC」)'應該做的伎倆,雖然。 –

+0

@Jack我使用的是PHP代碼 $ result = mcrypt_decrypt(「MCRYPT_3DES」,'secTotal',$ data,'cbc'); echo $ result; – Harshal

回答

0

您可以使用mcrypt_decrypt(),使用以下參數:

mcrypt_decrypt(MCRYPT_DES, $key, hex2bin($data), "cbc"); 

如果你沒有hex2bin()您可以使用pack()

mcrypt_decrypt(MCRYPT_DES, $key, pack('H*', $data), "cbc"); 
+0

pack()的返回一些奇怪的輸出如下 9¹μÕ¾Q¨õ¹&|ÒZøû¥±S'/ßNnªEfS²®MCK-^ N¿朱½èûáŠc......&˳Sþ&」, 「@」 í¼‰(¬çßLÌHE-QA¥b EE「」 HNn''á¤#üÛ9™ØºË1óμŸFžéz51〜/ Y4' > 6]ƒó0§åÊÖ9ñŸÔ'Føã¨。>FÓ¼ñ8v〜Þý,ó(X-」喲÷Vû<[YC™JM 「3EŽIIÄßwýâ!」 WL-½Â|Ø9Ï(#üEý¨R)|‡OY:Ì~p‡SS'<ÔçüèÉU/ OAE•7K |YhelôpÐ#.®WÍÛózg,V |?!SV ...μõŠ¤ƒ4pt%I AA」XNÀ'R〜•一個OA YT =IÞS» – Harshal

+0

那麼,它應該是'HEX2BIN合適的替代( )'。 –