mcrypt
वास्तव में listed की तुलना में अधिक मोड को लागू करता है, तो आप उन्हें उपयोग करने के लिए स्ट्रिंग के नाम का इस्तेमाल कर सकते हैं:
cbc
- सीबीसी मोड
cfb
- 8 बिट CFB मोड;
ncfb
- ब्लॉक आकार सीएफबी मोड;
nofb
- OFB मोड (ofb
नहीं);
ctr
- सीटीआर मोड।
मोड कार्यान्वयन विवरण में भिन्न होते हैं, इसलिए उनकी उपयुक्तता आपके डेटा और पर्यावरण पर निर्भर करती है।
पैडिंग:
सीबीसी मोड केवल पूरा ब्लॉक इतना mcrypt
पैड शून्य बाइट्स के साथ अपने प्लेन एन्क्रिप्ट करता है, जब तक कि आप अपनी खुद की गद्दी को लागू।
CFB, ओएफबी और सीटीआर मोड किसी भी लम्बाई के संदेशों को एन्क्रिप्ट।
प्रारंभ वेक्टर:
सीबीसी और CFB मोड एक यादृच्छिक चतुर्थ (MCRYPT_RAND
उपयोग न करें) की आवश्यकता होती है।
OFB मोड केवल एक अद्वितीय चतुर्थ (उदाहरण के लिए एक वैश्विक काउंटर, शायद डेटाबेस प्राथमिक कुंजी यदि पंक्तियों को कभी संशोधित या हटाया नहीं जाता है) की आवश्यकता होती है।
सीटीआर की आवश्यकता है कि प्रत्येक काउंटर ब्लॉक अद्वितीय है (न सिर्फ संदेश है, जो पहली काउंटर खंड है की चतुर्थ, लेकिन बाकी, संदेश के प्रत्येक ब्लॉक के लिए 1 से काउंटर ब्लॉक incrementing द्वारा गठित) । NIST recommendations में
में अधिक जानकारी।
ब्लॉक (आमतौर पर एक है, लेकिन 16 8 बिट CFB मोड में) प्रति उपयोग किया जाता है जैसे कि क्या एन्क्रिप्शन या डिक्रिप्शन parallelized किया जा सकता और कितने सिफर पुनरावृत्तियों के रूप में जो PHP में महत्वहीन होना चाहिए प्रदर्शन में अंतर, कर रहे हैं।
जो महत्वहीन होना चाहिए क्योंकि आप एक MAC लागू होगी malleability में मतभेद रहे हैं।
और उनकी सुरक्षा में अंतर हो सकते हैं, लेकिन इसके लिए आपको cryptographer से परामर्श लेना चाहिए।
डुप्लिकेट नहीं है लेकिन उपयोगी पोस्ट http://stackoverflow.com/questions/2809855/which-php-mcrypt-cipher-is-safest hi केविन;) – kjy112
हाँ मुझे पता है कि यह पोस्ट है, यह मेरा है, लेकिन मुझे अभी भी याद आती है 'mcrypt' के लिए उपलब्ध विभिन्न तरीकों के किसी भी पेशेवर/विपक्ष को बाहर करें। _CFC_ पर _CBC_ क्यों चुनें? – Industrial