PHP में एएस 3क्र्रीपोटो एन्क्रिप्टेड पाठ को डिक्रिप्ट करें




encryption as3crypto (2)

मैंने डेमो ऐप के माध्यम से as3crypto में पाठ को एन्क्रिप्ट करने का प्रयास किया

अब मैं पीएचपी के माध्यम से क्रिप्ट पाठ को डिक्रिप्ट करने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि पाठ ठीक से डिक्रिप्टेड नहीं है। क्या किसी को भी पता है कि इसे ठीक से PHP के माध्यम से डिक्रिप्ट करने के लिए? या मैं इसे गलत कर रहा हूँ? कृपया मुझे ज्ञान दो...

यहाँ परिदृश्य है:

  1. इसे http://crypto.hurlant.com/demo/ में एन्क्रिप्ट करें:

    एन्क्रिप्शन: एईएस

    मोड: सीबीसी

    पैडिंग: कोई नहीं

    कुंजी: 11918f8bcd112e92744125008722050c

    पाठ: विज्ञापन के लिए आवेदन पत्र सामान्य रूप से पुष्पों के पौधों के लिए पौधों को साफ करने के लिए

    वेक्टर प्रारंभ करें: इसे खाली छोड़ दें

  2. एन्क्रिप्ट दबाएं बेस 64 का चयन करें और सिफर टेक्स्ट कॉपी करें

  3. एक php स्क्रिप्ट करें जो इन कोडों को बनाते हैं और इसे चलाते हैं:

    $ साइफर = MCRYPT_RIJNDAEL_128;

    $ मोड = MCRYPT_MODE_CBC;

    $ key = "11918f8bcd112e92744125008722050c";

    $ साइफर = "प्लीज़ सिफर पाठ यहाँ ...";

    $ डेटा = बेस 64_डेकोड ($ साइफर);

    गूंज करें mcrypt_decrypt ($ साइफर, $ कुंजी, $ डेटा, $ मोड);


यह समस्या शायद आपकी कुंजी में है जब आप as3crypto के लिए एक हेक्स स्ट्रिंग फ़ीड कर सकते हैं और इसे पता चल जाएगा कि इसके साथ क्या किया जाए, तो mcrypt_decrypt प्रत्येक वर्ण की व्याख्या करेगा क्योंकि यह ASCII मान (जैसे एक = 97) के बजाय यह हेक्साडेसिमल मान (a = 10) के बजाय है। हेक्स स्ट्रिंग को बाइट स्ट्रिंग में कनवर्ट करने के लिए हेक्स 2 बीन विधि का उपयोग करें, और आपका डिक्रिप्शन ठीक काम करना चाहिए।

भी, एक समस्या एक अलग चौथाई (प्रारंभिक सदिश) के विभिन्न विचारों के बीच as3crypto और php के बीच आराम कर सकती है। चूंकि आप सीबीसी मोड का उपयोग कर रहे हैं, आपको एक चौथाई को निर्दिष्ट करना चाहिए, बस एक अच्छा सुरक्षा अभ्यास के रूप में यह भी कि as3 में एक हेक्स स्ट्रिंग को निर्दिष्ट करने और इसे php में बदलने की आवश्यकता है, आपकी कुंजी के साथ उन लोगों के समान संभावित नुकसानों से अवगत रहें।


यह काम करेगा:

PHP कोड:

//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456
function decrypt($data,$key,$iv)
{

    $decr= mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($data), MCRYPT_MODE_CBC, $iv);    
    return $decr;   
}

और यहां एएस 3 कोड है

//notice that $key and $iv length must be 16 chars long! ex: 1234567890123456
private function encrypt(input:String,decrKey:String,decrIV:String):String
{
    var inputBA:ByteArray=Hex.toArray(Hex.fromString(input));        
    var key:ByteArray = Hex.toArray(Hex.fromString(decrKey));                
    var pad:IPad = new NullPad();
    var aes:ICipher = Crypto.getCipher("aes-cbc", key, pad);
    var ivmode:IVMode = aes as IVMode;
    ivmode.IV = Hex.toArray(Hex.fromString(decrIV));            
    aes.encrypt(inputBA);  

    return Base64.encodeByteArray( inputBA);
}       






as3crypto