आज के डिजिटल परिदृश्य में डेटा एन्क्रिप्शन हर वेब एप्लिकेशन का एक महत्वपूर्ण हिस्सा है। यह लेख बताता है कि मैंने एक पैकेज क्यों विकसित किया, जो लिबसोडियम के XChaCha20-Poly1305 एन्क्रिप्शन की शक्ति का लाभ उठाता है, और यह ओवरहेड को कम करते हुए आपके लारवेल एप्लिकेशन की सुरक्षा को कैसे सुपरचार्ज कर सकता है।
लारवेल का फ्रेमवर्क क्रिप्ट फेकाडे संवेदनशील डेटा के एन्क्रिप्शन और डिक्रिप्शन के लिए एक सुविधाजनक इंटरफ़ेस प्रदान करता है, जैसे स्टेटलेस प्रमाणीकरण टोकन या अंतर-सेवा संचार फ्रेम।
ओपनएसएसएल के माध्यम से एईएस-256-सीबीसी पर आधारित डिफ़ॉल्ट फ्रेमवर्क का एन्क्रिप्शन कार्यान्वयन, आम तौर पर एक सुरक्षित ठोस आधार है, लेकिन इसमें हमेशा सुधार की गुंजाइश होती है, खासकर जब प्रदर्शन और प्रयोज्य महत्वपूर्ण होते हैं।
जबकि ओपनएसएसएल के माध्यम से एईएस-256-सीबीसी को अभी भी सुरक्षित माना जाता है, यह पुराना होता जा रहा है। इसके अलावा, ओपनएसएसएल पर इसकी निर्भरता विशिष्ट संस्करण और कॉन्फ़िगरेशन के आधार पर संभावित कमजोरियां पेश कर सकती है।
PHP 7.2 के अनुसार, सोडियम एक्सटेंशन PHP कोर के साथ बंडल किया गया है। लिबसोडियम XChaCha20-Poly1305 और Ed25519 जैसे आधुनिक, अच्छी तरह से जांचे गए क्रिप्टोग्राफ़िक प्राइमेटिव को प्राथमिकता देता है। जबकि AES हार्डवेयर त्वरण के साथ तेज़ हो सकता है, XChaCha20-Poly1305, सॉफ़्टवेयर कार्यान्वयन के रूप में, विशेष हार्डवेयर निर्देशों के बिना इसे बेहतर प्रदर्शन करता है।
// Default AES-256-CBC Encrypter $encrypter = new Illuminate\Encryption\Encrypter($key, 'aes-256-cbc'); $start = microtime(true); $results = []; for ($i = 0; $i encrypt(['user_id' => $i]); } $elapsed = microtime(true) - $start; // 4.08 seconds
// Custom XChaCha20-Poly1305 Encrypter $encrypter = new Blu3blaze\Encrypter\Encrypter($key); $start = microtime(true); $results = []; for ($i = 0; $i encrypt(['user_id' => $i]); } $elapsed = microtime(true) - $start; // 1.79 seconds
अंतर्निहित एन्क्रिप्शन सिफरटेक्स्ट, इनिशियलाइज़ेशन वेक्टर और टैग मान को JSON ऑब्जेक्ट के बेस64 प्रतिनिधित्व के रूप में एन्कोड करता है, जो टोकन की लंबाई को महत्वपूर्ण रूप से बढ़ाता है।
XChaCha20 एल्गोरिदम पर स्विच करने से JSON को एन्कोड करने की आवश्यकता समाप्त हो जाती है, नॉन को बाइनरी स्ट्रिंग के रूप में सिफरटेक्स्ट में जोड़ा जा सकता है।
// Default AES-256-CBC Encrypter $encrypter = new Illuminate\Encryption\Encrypter($key, 'aes-256-cbc'); $token = $encrypter->encrypt([ 'user_id' => '10296ab5-88b8-4dff-b7cf-2840b879e6dc' ]); // 312 characters
// Custom XChaCha20-Poly1305 Encrypter $encrypter = new Blu3blaze\Encrypter\Encrypter($key); $token = $encrypter->encrypt([ 'user_id' => '10296ab5-88b8-4dff-b7cf-2840b879e6dc' ]); // 139 characters
एम्बेडेड लाइब्रेरी मूल बेस64 संस्करण का उपयोग करती है। इस वजह से, URL के भाग के रूप में या GET पैरामीटर में से एक के रूप में टोकन का उपयोग करने के लिए Base64 से Base64URLSafe में अतिरिक्त परिवर्तन की आवश्यकता होती है।
Base64URLSafe में सिफरटेक्स्ट को तुरंत एनकोड करने का कोई नुकसान नहीं है और यह किसी भी वातावरण में सुरक्षित टोकन ट्रांसफर की अनुमति देता है।
1) कंपोजर के माध्यम से पैकेज स्थापित करें
composer require blu3blaze/laravel-xchacha20-encrypter
2) बूटस्ट्रैप/प्रोवाइडर्स.php में सेवा प्रदाताओं की सूची को संशोधित करें
3) XChaCha20-Poly1305 एल्गोरिदम के साथ क्रिप्ट मुखौटा का आनंद लें
use Illuminate\Support\Facades\Crypt; $token = Crypt::encrypt([ 'user_id' => '73d430f0-d39e-4642-a37e-9ef791b90d11' ]); /* TAl1Sz4DTspE8ZzTOC6Q.....Ug5t4XcWqoiB6CWRak9Y */ $tokenData = Crypt::decrypt($token); /* ['user_id' => '73d430f0-d39e-4642-a37e-9ef791b90d11'] */निष्कर्ष
blu3code/laravel-xchacha20-एन्क्रिप्टर पैकेज को अपनाकर, आप आधुनिक एन्क्रिप्शन एल्गोरिदम का लाभ उठा सकते हैं और अपने Laravel अनुप्रयोगों में महत्वपूर्ण प्रदर्शन सुधारों को अनलॉक कर सकते हैं। यह तेज़ प्रतिक्रिया समय, कम सर्वर लोड और आपके उपयोगकर्ताओं के डेटा के लिए अधिक सुरक्षित वातावरण का अनुवाद करता है। इसे आज़माएं और स्वयं अंतर देखें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3