परिचय
क्रिप्टोग्राफी क्या है? क्रिप्टोग्राफी प्लेन टेक्स्ट को सिफर टेक्स्ट में परिवर्तित करने से संबंधित है जिसे डेटा का एन्क्रिप्शन कहा जाता है और सिफर टेक्स्ट को वापस प्लेन टेक्स्ट में परिवर्तित करना जिसे डेटा का डिक्रिप्शन कहा जाता है।
हम डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए Python का उपयोग करके cryptography पैकेज में fernet मॉड्यूल का उपयोग करेंगे। fernet मॉड्यूल का उपयोग करते समय, एक अद्वितीय कुंजी उत्पन्न होती है जिसके बिना आप एन्क्रिप्टेड डेटा को पढ़ या हेरफेर नहीं कर सकते।
अब जब आप जानते हैं कि हम किससे निपटेंगे, तो आइए शुरू करें।
शुरुआत करना
cryptography मॉड्यूल Python के साथ पैकेज्ड नहीं आता है, जिसका अर्थ है कि आपको इसे pip पैकेज मैनेजर का उपयोग करके इंस्टॉल करना होगा। ऐसा करने के लिए, अपना टर्मिनल लॉन्च करें और नीचे दिए गए कोड को टाइप करें।
pip install cryptography
एक बार जब आपके पास पैकेज डाउनलोड और इंस्टॉल हो जाता है, तो आप इसके मॉड्यूल्स इम्पोर्ट कर सकते हैं।
हम डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए fernet मॉड्यूल का उपयोग करेंगे। तो, आइए इसे Python स्क्रिप्ट में इम्पोर्ट करें।
from cryptography.fernet import Fernet
नोट - सुनिश्चित करें कि आप कैपिटलाइज़ेशन सही ढंग से प्राप्त करते हैं।
आप अपना स्क्रिप्ट लिखना शुरू करने के लिए पूरी तरह तैयार हैं।
कुंजी उत्पन्न करना
डेटा एन्क्रिप्ट करना शुरू करने के लिए, आपको पहले एक fernet कुंजी बनानी होगी।
key = Fernet.generate_key()
f = Fernet(key)
उपरोक्त लाइनों में, हमने generate_key() मेथड का उपयोग करके एक कुंजी उत्पन्न की और फिर अगली लाइन में उस कुंजी को वेरिएबल "f" को असाइन किया।
और बस, अब आपके पास एक वेरिएबल में स्टोर्ड कुंजी है जो उपयोग के लिए तैयार है।
हम कुंजी को प्रिंट और स्टोर कर सकते हैं, यदि आवश्यक हो। प्रिंट करते समय डिकोड फंक्शन का उपयोग करना सुनिश्चित करें।
print(key.decode())
आउटपुट
Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=
डेटा एन्क्रिप्ट करना
उपरोक्त कुंजी से डेटा एन्क्रिप्ट करने के लिए, आपको encrypt मेथड का उपयोग करना होगा।
encrypted_data = f.encrypt(b"This message is being encrypted and cannot be seen!")
और बस, उपरोक्त वाक्य एन्क्रिप्ट हो गया है।
अपना एन्क्रिप्टेड संदेश देखने के लिए, आपको इसे प्रिंट करना होगा।
print(encrypted_data)
आउटपुट
b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD--xJdkTycKH2iurC_oqHySLc9xJEXz93LkhTbKUa5HCxfJtB-Um_YkxqjclftXXZQ=='
नोट - वाक्य से पहले हमारे पास बाइट फॉर्मेट में बदलने के लिए b था। आप इसके बजाय encode() मेथड का उपयोग करना भी चुन सकते हैं।
डेटा डिक्रिप्ट करना
अब जब आपके पास सिफर टेक्स्ट है, तो आइए देखते हैं कि हम इसे वापस प्लेन पठनीय टेक्स्ट में कैसे परिवर्तित कर सकते हैं।
हम fernet मॉड्यूल में decrypt मेथड का उपयोग करके डिक्रिप्शन प्राप्त कर सकते हैं।
decrypted_data = f.decrypt(encrypted_data) # f वह वेरिएबल है जिसमें कुंजी का मान है।
print(decrypted_data)
आउटपुट
b'This message is being encrypted and cannot be seen!'
नोट - यदि आप उपरोक्त आउटपुट को देखते हैं, तो आप देख सकते हैं कि प्रिंटेड प्लेनटेक्स्ट से पहले b' है, ऐसा इसलिए है क्योंकि एन्क्रिप्टेड डेटा को वापस बाइट फॉर्मेट में परिवर्तित किया जा रहा है। केवल प्लेन टेक्स्ट प्राप्त करने के लिए, हमें डिकोड फंक्शन का उपयोग करने की आवश्यकता है।
print(decrypted_data.decode())
आउटपुट
This message is being encrypted and cannot be seen!
नोट - आप उसी कुंजी का उपयोग करके डेटा को एन्क्रिप्ट और डिक्रिप्ट कर सकते हैं। अर्थात, यदि आप कुंजी का मान प्रिंट करते हैं और सहेजते हैं। आप उसी कुंजी को वेरिएबल को असाइन करके उपयोग कर सकते हैं। उदाहरण ->
f = Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=) # एक वास्तविक कुंजी का मान दिया गया है।
उदाहरण
from cryptography.fernet import Fernet
key = Fernet.generate_key()
print("Key: ", key.decode())
f = Fernet(key)
encrypted_data = f.encrypt(b"This message is being encrypted and cannot be seen!")
print("After encryption: ", encrypted_data)
decrypted_data = f.decrypt(encrypted_data)
print(decrypted_data)
print("After decryption: ", decrypted_data.decode())
आउटपुट
Key: u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI=
After encryption: b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ=='
b'This message is being encrypted and cannot be seen!'
After decryption: This message is being encrypted and cannot be seen!
निष्कर्ष
अब आपने Python में cryptography पैकेज का उपयोग करके डेटा एन्क्रिप्ट और डिक्रिप्ट करना सीख लिया है।
आप कुंजी को .txt फाइल के रूप में भी सहेज सकते हैं और फिर पासवर्ड एन्क्रिप्ट और स्टोर करने के लिए इसे पुनः प्राप्त कर सकते हैं या डेटाबेस से पासवर्ड डिक्रिप्ट करके वेरिफाई कर सकते हैं कि यह मेल खाता है या नहीं। ऐसे विभिन्न अन्य मामले हैं जहां आप इसका उपयोग कर सकते हैं, चाहे वह मिनी-प्रोजेक्ट हो या बड़े पैमाने का प्रोजेक्ट।
cryptography मॉड्यूल पर अधिक जानकारी के लिए, आप उनकी आधिकारिक डॉक्यूमेंटेशन - https://pypi.org/project/cryptography/ पढ़ सकते हैं।