PHP: मैक्रिप-कौन सा मोड?



encryption mcrypt (1)

mcrypt वास्तव में सूचीबद्ध की तुलना में अधिक मोड लागू करता है, आप उन्हें एक्सेस करने के लिए स्ट्रिंग नामों का उपयोग कर सकते हैं:

  • सीबीसी - सीबीसी मोड
  • cfb - 8 बिट सीएफबी मोड;
  • ncfb - ब्लॉक-साइज CFB मोड;
  • ofb - ओएफबी मोड (का का नहीं);
  • ctr - सीटीआर मोड

मोड कार्यान्वयन विवरण में भिन्न होता है, इसलिए उनकी उपयुक्तता आपके डेटा और पर्यावरण पर निर्भर करती है।

पैडिंग :

  • सीबीसी मोड केवल पूर्ण ब्लॉक को एन्क्रिप्ट करता है, इसलिए mcrypt शून्य सा बाइट्स के साथ अपने सादा पाठ को पैड करता है जब तक कि आप अपने पैडिंग को लागू नहीं करते।

  • सीएफबी , ओएफबी और सीटीआर मोड किसी भी लम्बाई के एन्क्रिप्ट संदेश

प्रारंभिक वेक्टर :

  • सीबीसी और सीएफबी मोड में एक यादृच्छिक IV की आवश्यकता होती है ( MCRYPT_RAND उपयोग न करें)

  • ओएफबी मोड में केवल एक अद्वितीय IV की आवश्यकता होती है (उदाहरण के लिए एक वैश्विक काउंटर, शायद डेटाबेस प्राथमिक कुंजी अगर पंक्तियों को कभी भी संशोधित या हटाया नहीं गया हो)

  • सीटीआर के लिए आवश्यक है कि प्रत्येक काउंटर ब्लॉक्ड अद्वितीय है (केवल संदेश का चौथा नहीं, जो कि पहला काउंटर ब्लॉक है, लेकिन शेष, संदेश के प्रत्येक ब्लॉक के लिए काउंटर ब्लॉकों को 1 से बढ़ाकर गठित)।

एनआईएसटी सिफारिशों में अधिक जानकारी

निष्पादन में अंतर है जो PHP में महत्वहीन होना चाहिए, जैसे कि एन्क्रिप्शन या डिक्रिप्शन को समानांतर किया जा सकता है और कितने साइफर पुनरावृत्तियों का उपयोग प्रति ब्लॉक (आमतौर पर एक, लेकिन 16 में 8 बिट CFB मोड में) किया जा सकता है।

तुलनयता में अंतर है जो महत्वहीन होना चाहिए क्योंकि आप मैक लागू करेंगे

और उनकी सुरक्षा में अंतर हो सकता है, लेकिन इसके लिए आपको एक क्रिप्टोग्राफर से परामर्श करना चाहिए

मैं PHP के mcrypt फ़ंक्शन में उपलब्ध विभिन्न तरीकों का परीक्षण कर रहा हूं। ईसीबी ज्यादातर ट्यूटोरियल्स में प्रयुक्त मोड है, लेकिन अभी लिंक किए गए पृष्ठ और कुछ उपयोगकर्ता दोनों द्वारा अनुशंसित नहीं है, इसलिए मुझे लगता है कि सीबीसी या सीएफ़बी को चाल करना चाहिए।

PHP प्रलेखन mcrypt लिए उपलब्ध विभिन्न तरीकों की तुलना में बहुत मोटी नहीं है और इसके बजाय 'एप्लाइड क्रिप्टोग्राफ़री बाय शनीयर' की किताब को संदर्भित करता है, जिसे मैं पल के लिए खरीदने के लिए उत्सुक नहीं हूं।

तो मैक्रिप्ट-मोड्स में से किस का उपयोग करना है और क्यों?





mcrypt