PHP में स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट कैसे करें?

Php Mem Stringa Ko Enkripta Aura Dikripta Kaise Karem



कूटलेखन डेटा को एक गुप्त कोड या एक प्रारूप में परिवर्तित करने की प्रक्रिया है जो किसी के लिए भी समझ में नहीं आता है जिसके पास इसे डिकोड करने की कुंजी नहीं है। डिक्रिप्शन उस जानकारी को लेने और उसे उसके मूल, पठनीय प्रारूप में वापस करने की प्रक्रिया है। पीएचपी में, कूटलेखन, और डिक्रिप्शन संवेदनशील डेटा, जैसे पासवर्ड, क्रेडिट कार्ड की जानकारी और अन्य व्यक्तिगत डेटा की सुरक्षा के लिए इस्तेमाल किया जा सकता है।

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

को डिक्रिप्ट डेटा को एन्क्रिप्ट करने के लिए उपयोग किए गए डेटा को डिक्रिप्ट करने के लिए आपको उसी एन्क्रिप्शन विधि का उपयोग करना चाहिए। इसका मतलब है कि आपको कुंजी को कहीं स्टोर करने की आवश्यकता होगी ताकि आप बाद में डेटा को डीकोड करने के लिए इसका इस्तेमाल कर सकें।







PHP स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट कैसे करें?

एक PHP स्ट्रिंग हो सकती है कूट रूप दिया गया और decrypted का उपयोग Opensl_encrpyt () और Opensl_decrypt () तरीके, क्रमशः।



Opensl_encrypt() फ़ंक्शन का उपयोग करके एक स्ट्रिंग को एन्क्रिप्ट करें

को एक स्ट्रिंग एन्क्रिप्ट करें PHP में Opensl_encrypt () फ़ंक्शन, आपको सादा पाठ स्ट्रिंग, एन्क्रिप्शन विधि और एक कुंजी प्रदान करने की आवश्यकता है। फ़ंक्शन एन्क्रिप्टेड डेटा लौटाएगा, जिसे आप सुरक्षित रूप से स्टोर या ट्रांसमिट कर सकते हैं।



के लिए वाक्य रचना Opensl_encrypt () विधि है:





स्ट्रिंग Opensl_encrypt ( डोरी $ डेटा , डोरी $विधि , डोरी $ कुंजी , $ विकल्प = 0 , डोरी $iv , डोरी $ टैग = व्यर्थ , डोरी $ आप , int यहाँ $tag_length = 16 )
  • $ डेटा: वह स्ट्रिंग या डेटा जिसे आप एन्क्रिप्ट करना चाहते हैं।
  • $ विधि: एन्क्रिप्शन विधि या सिफर जिसका आप उपयोग करना चाहते हैं। आप का उपयोग करके समर्थित सिफर विधियों की सूची प्राप्त कर सकते हैं Opensl_get_cipher_methods ()
  • $कुंजी: एन्क्रिप्शन कुंजी जिसका उपयोग डेटा को एन्क्रिप्ट करने के लिए किया जाएगा। यह चुने हुए सिफर विधि के आधार पर उपयुक्त लंबाई और यादृच्छिकता की एक स्ट्रिंग होनी चाहिए।
  • $विकल्प: एक वैकल्पिक पैरामीटर जिसमें विशिष्ट एन्क्रिप्शन विकल्पों के लिए अतिरिक्त फ़्लैग शामिल हो सकते हैं। आप झंडे का उपयोग करके जोड़ सकते हैं बिटवाइज़ या (|) सामान्य झंडों में शामिल हैं OPENSSL_RAW_DATA और OPENSSL_ZERO_PADDING .
  • $iv: इनिशियलाइज़ेशन वेक्टर (iv) एन्क्रिप्शन के लिए उपयोग किया जाता है; यह एक स्ट्रिंग के रूप में प्रदान किया गया एक यादृच्छिक और अद्वितीय मान होना चाहिए।
  • $ टैग: AEAD (एसोसिएटेड डेटा के साथ प्रमाणित एन्क्रिप्शन) सिफर मोड के लिए उपयोग किया जाने वाला एक वैकल्पिक पैरामीटर, जैसे GCM (Galois/Counter Mode) या CCM (CBC-MAC के साथ काउंटर)। यह एन्क्रिप्शन के दौरान उत्पन्न प्रमाणीकरण टैग को संग्रहीत करता है।
  • आपका: अतिरिक्त प्रमाणित डेटा जिसका उपयोग AEAD सिफर मोड के लिए किया जा सकता है।
  • $tag_length: प्रमाणीकरण टैग की लंबाई। GCM मोड के लिए, टैग की लंबाई 4 से 16 बाइट्स तक होती है।

उदाहरण के लिए:


$सरल_स्ट्रिंग = 'लिनक्सहिंट में आपका स्वागत है \एन ' ;
गूंज 'मूल स्ट्रिंग:' . $सरल_स्ट्रिंग ;
$सिफरिंग = 'एईएस-128-सीटीआर' ;
$iv_length = Opensl_cipher_iv_length ( $सिफरिंग ) ;
$ विकल्प = 0 ;
$एन्क्रिप्शन_iv = '1234567891011121' ;
$एन्क्रिप्शन_की = 'लिनक्स' ;
$ एन्क्रिप्शन = opensl_encrypt ( $सरल_स्ट्रिंग , $सिफरिंग ,
$एन्क्रिप्शन_की , $ विकल्प , $एन्क्रिप्शन_iv ) ;
गूंज 'एन्क्रिप्टेड स्ट्रिंग:' . $ एन्क्रिप्शन . ' \एन ' ;
?>

कोड पहले मूल पाठ की घोषणा करता है 'लिनक्सहिंट में आपका स्वागत है' और इसे दिखाने के लिए इको कमांड का उपयोग करता है। फिर, यह उपयोग किए जाने वाले एन्क्रिप्शन एल्गोरिथम को निर्दिष्ट करता है, एईएस-128-सीटीआर . यह भी उपयोग करता है Opensl_cipher_iv_length () के आकार की गणना करने के लिए समारोह आरंभीकरण वेक्टर (IV) इस सिफर के लिए आवश्यक है।



कोड एन्क्रिप्शन सेट करता है चतुर्थ के लिए मूल्य '1234567891011121' और एन्क्रिप्शन कुंजी 'लिनक्स' . एक बार एन्क्रिप्शन का उपयोग करके पूरा हो जाने के बाद एन्क्रिप्टेड स्ट्रिंग को इको कमांड का उपयोग करके दिखाया जाता है Opensl_encrypt () समारोह। एन्क्रिप्शन के लिए उपयोग किए जाने वाले रैंडम इनिशियलाइज़ेशन वेक्टर के कारण, अंतिम एन्क्रिप्टेड स्ट्रिंग हर बार अलग-अलग होगी।

Opensl_decrypt() फ़ंक्शन का उपयोग करके एक स्ट्रिंग को डिक्रिप्ट करें

PHP में एक स्ट्रिंग को डिक्रिप्ट करने के लिए, आप इसका उपयोग कर सकते हैं Opensl_decrypt () समारोह। यह फ़ंक्शन एन्क्रिप्टेड डेटा, एन्क्रिप्शन विधि और कुंजी को इनपुट के रूप में लेता है और डिक्रिप्टेड प्लेनटेक्स्ट को वापस करता है।

के लिए वाक्य रचना Opensl_decrypt () विधि है:

स्ट्रिंग Opensl_decrypt ( डोरी $ डेटा , डोरी $विधि , डोरी $ कुंजी , int यहाँ $ विकल्प = 0 , डोरी $iv , डोरी $ टैग , डोरी $ आप )

समारोह में दिए गए तर्क हैं:

  • $ डेटा: एन्क्रिप्टेड स्ट्रिंग या डेटा जिसे आप डिक्रिप्ट करना चाहते हैं।
  • $ विधि: एन्क्रिप्शन के दौरान उपयोग की जाने वाली एन्क्रिप्शन विधि या सिफर। आप का उपयोग करके समर्थित सिफर विधियों की सूची प्राप्त कर सकते हैं Opensl_get_cipher_methods ()
  • $कुंजी: एन्क्रिप्शन कुंजी जिसका उपयोग डेटा को एन्क्रिप्ट करने के लिए किया गया था। यह एन्क्रिप्शन के दौरान उपयोग की जाने वाली कुंजी से मेल खाना चाहिए।
  • $विकल्प: एक वैकल्पिक पैरामीटर जिसमें विशिष्ट डिक्रिप्शन विकल्पों के लिए अतिरिक्त फ़्लैग शामिल हो सकते हैं। आप बिटवाइज़ OR (|) ऑपरेटर का उपयोग करके फ़्लैग को संयोजित कर सकते हैं। सामान्य झंडों में शामिल हैं OPENSSL_RAW_DATA और OPENSSL_ZERO_PADDING .
  • $iv: आरंभीकरण वेक्टर (IV) एन्क्रिप्शन के दौरान उपयोग किया जाता है। यह वही IV होना चाहिए जिसका उपयोग एन्क्रिप्शन के दौरान किया गया था और एक स्ट्रिंग के रूप में पारित किया गया था।
  • $ टैग: AEAD के लिए प्रमाणीकरण टैग (एसोसिएटेड डेटा के साथ प्रमाणित एन्क्रिप्शन) सिफर मोड, जैसे GCM (Galois/Counter Mode) या CCM (CBC-MAC के साथ काउंटर)। यदि प्रमाणीकरण विफल हो जाता है, तो Opensl_decrypt() FALSE लौटाएगा।
  • आपका: AEAD सिफर मोड के लिए एन्क्रिप्शन के दौरान उपयोग किया गया अतिरिक्त प्रमाणीकृत डेटा।

प्रतिलाभ की मात्रा: सफल होने पर, यह डिक्रिप्टेड स्ट्रिंग लौटाता है; अन्यथा, यह FALSE लौटाता है।

उदाहरण के लिए:


$ एन्क्रिप्टेड_स्ट्रिंग = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
गूंज 'एन्क्रिप्टेड स्ट्रिंग:' . $ एन्क्रिप्टेड_स्ट्रिंग . ' \एन ' ;
$डिक्रिप्शन_iv = '1234567891011121' ;
$सिफरिंग = 'एईएस-128-सीटीआर' ;
$ विकल्प = 0 ;
$ डिक्रिप्शन_की = 'लिनक्स' ;
$ डिक्रिप्शन = opensl_decrypt ( $ एन्क्रिप्टेड_स्ट्रिंग , $सिफरिंग ,
$ डिक्रिप्शन_की , $ विकल्प , $डिक्रिप्शन_iv ) ;
गूंज 'डिक्रिप्टेड स्ट्रिंग:' . $ डिक्रिप्शन ;
?>

इस कोड में वेक्टर लंबाई की गणना का उपयोग करके की जाती है Opensl_cipher_iv_length () फ़ंक्शन, और एन्क्रिप्शन के दौरान समान एन्क्रिप्शन iv और कुंजी पैरामीटर का उपयोग किया जाता है। सिफरिंग एल्गोरिदम को इस रूप में परिभाषित किया गया है एईएस-128-सीटीआर .

पहले से एन्क्रिप्टेड स्ट्रिंग को सिफरिंग एल्गोरिथ्म, एन्क्रिप्शन कुंजी, सेटिंग्स और IV मानों का उपयोग करके डिक्रिप्ट किया जाता है Opensl_decrypt () समारोह। परिणामी डिक्रिप्टेड टेक्स्ट को इको कमांड का उपयोग करके दिखाया गया है।

निष्कर्ष

वेबसाइटों के निर्माण में अक्सर शामिल होता है एन्क्रिप्ट करना और डिक्रिप्ट करना आंकड़े। संवेदनशील डेटा की सुरक्षा के लिए एन्क्रिप्शन का उपयोग करके, आप अपने उपयोगकर्ताओं को पहचान की चोरी, धोखाधड़ी और अन्य सुरक्षा खतरों से बचा सकते हैं। PHP में स्ट्रिंग्स को फ़ंक्शन द्वारा एन्क्रिप्ट और डिक्रिप्ट किया जा सकता है Opensl_encrypt () और Opensl_decrypt () कार्य करता है। एन्क्रिप्शन एल्गोरिथ्म और कुंजी को सावधानी से नियोजित करके, आप अपने PHP अनुप्रयोगों में संवेदनशील डेटा को संभालने के लिए एक मजबूत और सुरक्षित प्रणाली बना सकते हैं।