इस ट्यूटोरियल में आप सीखेंगे कि डेटा को एन्क्रिप्ट और डिक्रिप्ट कैसे करें, उदा। पायथन में क्रिप्टोग्राफी लाइब्रेरी का उपयोग कर टेक्स्ट की एक स्ट्रिंग।
एन्क्रिप्शन जानकारी को इस तरह से एन्कोड करने की प्रक्रिया है कि केवल अधिकृत पक्ष ही इसे एक्सेस कर सकते हैं। यह हमें डेटा को सुरक्षित रूप से सुरक्षित रखने की अनुमति देता है जिसे हम नहीं चाहते कि कोई भी देखे या एक्सेस करे।
संबंधित:
- क्रिप्टोग्राफी की मूल बातें
इस उदाहरण में, हम सममित एन्क्रिप्शन का उपयोग करेंगे, जिसका अर्थ है कि हम डेटा को एन्क्रिप्ट करने के लिए जिस कुंजी का उपयोग करते हैं, वह डिक्रिप्शन के लिए भी प्रयोग योग्य है।
हम यहां जिस क्रिप्टोग्राफ़ी लाइब्रेरी का उपयोग करते हैं, वह एईएस एल्गोरिथम के शीर्ष पर बनी है।
पायथन में डेटा एन्क्रिप्ट करें
सबसे पहले, हमें क्रिप्टोग्राफी लाइब्रेरी स्थापित करने की आवश्यकता है:
pip3 install cryptography
क्रिप्टोग्राफ़ी लाइब्रेरी से, हमें Fernet
import आयात करने की आवश्यकता है और एक कुंजी बनाना शुरू करें - यह कुंजी सममित एन्क्रिप्शन/डिक्रिप्शन के लिए आवश्यक है।
जनरेट कुंजी
एक कुंजी उत्पन्न करने के लिए, हम generate_key()
. को कॉल करते हैं विधि:
from cryptography.fernet import Fernet
def generate_key():
"""
Generates a key and save it into a file
"""
key = Fernet.generate_key()
with open("secret.key", "wb") as key_file:
key_file.write(key)
कुंजी उत्पन्न करने के लिए हमें उपरोक्त विधि को केवल एक बार निष्पादित करने की आवश्यकता है।
नोट:आपको इस चाबी को सुरक्षित स्थान पर रखना होगा। यदि आप कुंजी खो देते हैं, तो आप उस डेटा को डिक्रिप्ट नहीं कर पाएंगे जो इस कुंजी से एन्क्रिप्ट किया गया था।कुंजी लोड करें
एक बार जब हम एक कुंजी उत्पन्न कर लेते हैं, तो हमें डेटा को एन्क्रिप्ट करने के लिए कुंजी को अपनी विधि में लोड करने की आवश्यकता होती है:
def load_key():
"""
Loads the key named `secret.key` from the current directory.
"""
return open("secret.key", "rb").read()
संदेश एन्क्रिप्ट करें
अब, हम एक संदेश को एन्क्रिप्ट करने के लिए तैयार हैं। यह तीन चरणों वाली प्रक्रिया है:
- 1 - संदेश को एन्कोड करें
- 2 - फ़र्नेट क्लास को इनिशियलाइज़ करें
- 3 - एन्कोडेड संदेश को
encrypt()
. पर पास करें विधि
संदेश को एन्कोड करें:
message = "message I want to encrypt".encode()
फर्नेट क्लास को इनिशियलाइज़ करें:
f = Fernet(key)
संदेश एन्क्रिप्ट करें:
encrypted_message = f.encrypt(message)
संपूर्ण कोड उदाहरण
पायथन में संदेश को एन्क्रिप्ट करने का एक पूर्ण कार्य उदाहरण नीचे दिया गया है:
from cryptography.fernet import Fernet
def generate_key():
"""
Generates a key and save it into a file
"""
key = Fernet.generate_key()
with open("secret.key", "wb") as key_file:
key_file.write(key)
def load_key():
"""
Load the previously generated key
"""
return open("secret.key", "rb").read()
def encrypt_message(message):
"""
Encrypts a message
"""
key = load_key()
encoded_message = message.encode()
f = Fernet(key)
encrypted_message = f.encrypt(encoded_message)
print(encrypted_message)
if __name__ == "__main__":
encrypt_message("encrypt this message")
आउटपुट:
b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4='
पायथन में डेटा डिक्रिप्ट करें
संदेश को डिक्रिप्ट करने के लिए, हम केवल decrypt()
. को कॉल करते हैं Fernet
. से विधि पुस्तकालय। याद रखें, हमें कुंजी को भी लोड करने की आवश्यकता है, क्योंकि संदेश को डिक्रिप्ट करने के लिए कुंजी की आवश्यकता होती है।
from cryptography.fernet import Fernet
def load_key():
"""
Load the previously generated key
"""
return open("secret.key", "rb").read()
def decrypt_message(encrypted_message):
"""
Decrypts an encrypted message
"""
key = load_key()
f = Fernet(key)
decrypted_message = f.decrypt(encrypted_message)
print(decrypted_message.decode())
if __name__ == "__main__":
decrypt_message(b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4=')
आउटपुट:
encrypt this message