php 3DES-ECB एन्क्रिप्शन के लिए Mcrypt को बदलने के लिए Opensl_encrypt का उपयोग करें



encryption php-openssl (1)

अब मैं इसे एन्क्रिप्ट करने के लिए उपयोग करना चाहता हूं openssl_encrypt , और मुझे des3-ecb में नहीं मिला openssl_get_cipher_methods() सूची।

यह des-ede3 । एक ब्लॉक सिफर के साथ सममित एन्क्रिप्शन को किसी प्रकार के ऑपरेशन की आवश्यकता होती है । यदि आप सूची को देखते हैं, तो आपको des-ede3 , des-ede3-cbc , des-ede3-cfb और des-ede3-ofb । सीबीसी, सीएफबी और ओएफबी सभी नामित हैं और अनाम सिफर ऑपरेशन का केवल अन्य सामान्य तरीका होना चाहिए: ईसीबी।

ECB मोड का उपयोग कभी न करें । यह नियतात्मक है और इसलिए शब्दार्थ रूप से सुरक्षित नहीं है। आपको CBC या CTR जैसे यादृच्छिक मोड का बहुत कम से कम उपयोग करना चाहिए। अपने सिफरटेक्स्ट को प्रमाणित करना बेहतर है, ताकि पेडिंग ऑरेकल हमले की तरह हमले संभव न हों। यह GCM या EAX जैसे प्रमाणित मोड के साथ या एक encrypt-then-MAC योजना के साथ किया जा सकता है।

आजकल ट्रिपल डेस का उपयोग न करें। यह केवल सबसे अच्छी 112 बिट सुरक्षा प्रदान करता है, भले ही आप 192 बिट के सबसे बड़े कुंजी आकार का उपयोग करें। यदि एक छोटे कुंजी आकार का उपयोग किया जाता है, तो यह केवल 56 या 57 बिट्स सुरक्षा प्रदान करता है। एईएस तेज़ होगा (प्रोसेसर के पास एक विशेष एईएस-एनआई निर्देश सेट है) और 128 बिट के सबसे कम कुंजी आकार के साथ और भी अधिक सुरक्षित है। 3 डीईएस के साथ अधिकतम सिफरटेक्स्ट आकार पर एक व्यावहारिक सीमा भी है। 3DES और AES की सुरक्षा तुलना देखें।

मेरे पास mycrypt के साथ एक एन्क्रिप्शन विधि है और सिफर 3des , मोड ecb :

mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' )

अब मैं इसे openssl_encrypt का उपयोग करके एन्क्रिप्ट करना चाहता openssl_encrypt , और मुझे des3-ecb को openssl_get_cipher_methods() सूची में नहीं मिला।





ecb