2012-06-12 18 views
6

मैं एक PHP Servor जो CFB मोडसिफर/3DES/CFB/जावा और PHP

साथ 3DES में डेटा को डिक्रिप्ट है मैं PHP में एन्क्रिप्ट:

$montant = "500"; 
$message_crypte = mcrypt_encrypt(MCRYPT_3DES, "N4y1FRDRJ7wn7eJNnWaahCIS", $montant, ,CRYPT_MODE_CFB, "NCNPJDcR"); 
$montant = base64_encode($message_crypte); 

PHP में यह स्क्रिप्ट अन्य कोई त्रुटि नहीं है प्रणाली।

और मैं जावा में एन्क्रिप्ट करना चाहते हैं:

public class CryptData { 
private KeySpec keySpec; 
private SecretKey key; 
private IvParameterSpec iv; 

public CryptData(String keyString, String ivString) { 
    try { 
     final MessageDigest md = MessageDigest.getInstance("md5"); 

     final byte[] digestOfPassword = md.digest(Base64 
       .decodeBase64(keyString.getBytes("ISO-8859-1"))); 

     final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); 
     for (int j = 0, k = 16; j < 8;) { 
      keyBytes[k++] = keyBytes[j++]; 
     } 

     //keySpec = new DESedeKeySpec(keyBytes); 
     keySpec = new DESedeKeySpec(keyString.getBytes()); 

     key = SecretKeyFactory.getInstance("DESede") 
       .generateSecret(keySpec); 

     iv = new IvParameterSpec(ivString.getBytes()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public String encrypt(String value) { 
    try { 
     Cipher ecipher = Cipher.getInstance("DESede/CFB/NoPadding"); 

       //"SunJCE"); 
     ecipher.init(Cipher.ENCRYPT_MODE, key, iv); 

     if (value == null) 
      return null; 

     // Encode the string into bytes using utf-8 
     byte[] valeur = value.getBytes("ISO-8859-1"); 
     //byte[] utf8 = value.getBytes(); 

     // Encrypt 
     byte[] enc = ecipher.doFinal(valeur); 

     // Encode bytes to base64 to get a string 
     return new String(Base64.encodeBase64(enc), "ISO-8859-1"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

}

मैं PHP में और जावा

में नहीं एक ही परिणाम है

कैसे modifiy जावा उपचार पीएचपी के रूप में एक ही परिणाम प्राप्त करने के लिए ?

धन्यवाद

विन्स

+0

ऐसा लगता है कि अपने PHP किसी भी PKCS # 5 गद्दी प्रदर्शन नहीं कर रहा है जैसे - कि सिर्फ अपने नमूना यहाँ से हटा दिया या कोई गद्दी किया जा रहा है था PHP पक्ष पर? – sarnold

+0

मेरी PHP स्क्रिप्ट पहले से ही PHP या एएसपी या सी # में अन्य साइटों के साथ काम कर रही है, इसलिए मैं कोड नहीं बदलूंगा, बल्कि जावा में। क्या आपके पास कोई विचार है? मैंने नोपैडिंग के साथ परीक्षण किया, लेकिन यह काम नहीं करता है ... – user1450740

+0

यह सिर्फ मुझे हो सकता है, लेकिन मेरे लिए ऐसा लगता है कि आप PHP स्क्रिप्ट में बेस 64 एन्कोडिंग नहीं हैं, इसलिए यदि आप इसे दूसरे छोर पर डीकोड करते हैं, तो यह शुद्ध गंदगी के रूप में पढ़ा जाएगा? –

उत्तर

2

जवाब है: सिफर ecipher = Cipher.getInstance ("DESede/CFB8/NoPadding");

मैं "CFB8"

विन्स उपयोग करने की आवश्यकता