Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python के साथ डेटा सुरक्षित करें: क्रिप्टोग्राफी लाइब्रेरी का उपयोग करके एन्क्रिप्ट और डिक्रिप्ट करें

इस ट्यूटोरियल में आप सीखेंगे कि क्रिप्टोग्राफी लाइब्रेरी का उपयोग करके Python में डेटा को कैसे एन्क्रिप्ट और डिक्रिप्ट करें, उदाहरण के लिए टेक्स्ट की एक स्ट्रिंग।

एन्क्रिप्शन सूचना को इस तरह एन्कोड करने की प्रक्रिया है कि केवल अधिकृत पक्ष ही उस तक पहुंच सकें। यह हमें उस डेटा को सुरक्षित रूप से संरक्षित करने की अनुमति देता है जिसे हम नहीं चाहते कि कोई भी देखे या एक्सेस करे।

  • क्रिप्टोग्राफी बेसिक्स

इस उदाहरण में, हम सिमेट्रिक एन्क्रिप्शन का उपयोग करेंगे, जिसका अर्थ है कि डेटा को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली वही कुंजी डिक्रिप्शन के लिए भी उपयोग योग्य है।

यहां उपयोग की जाने वाली क्रिप्टोग्राफी लाइब्रेरी AES एल्गोरिदम के शीर्ष पर बनी है।

Python में डेटा एन्क्रिप्ट करें

सबसे पहले, हमें क्रिप्टोग्राफी लाइब्रेरी इंस्टॉल करने की आवश्यकता है:

pip3 install cryptography

क्रिप्टोग्राफी लाइब्रेरी से, हमें Fernet आयात करने और कुंजी जनरेट करना शुरू करने की आवश्यकता है - यह कुंजी सिमेट्रिक एन्क्रिप्शन/डिक्रिप्शन के लिए आवश्यक है।

कुंजी जनरेट करें

कुंजी जनरेट करने के लिए, हम generate_key() मेथड को कॉल करते हैं:

from cryptography.fernet import Fernet

def generate_key():
    """ कुंजी जनरेट करता है और इसे फ़ाइल में सेव करता है """
    key = Fernet.generate_key()
    with open("secret.key", "wb") as key_file:
        key_file.write(key)

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

नोट: आपको इस कुंजी को सुरक्षित स्थान पर रखना होगा। यदि आप कुंजी खो देते हैं, तो आप इस कुंजी से एन्क्रिप्ट किए गए डेटा को डिक्रिप्ट नहीं कर पाएंगे।

कुंजी लोड करें

एक बार कुंजी जनरेट हो जाने के बाद, हमें डेटा एन्क्रिप्ट करने के लिए अपनी मेथड में कुंजी लोड करने की आवश्यकता है:

def load_key():
    """ वर्तमान डायरेक्टरी से `secret.key` नामक कुंजी लोड करता है। """
    return open("secret.key", "rb").read()

संदेश एन्क्रिप्ट करें

अब, हम संदेश एन्क्रिप्ट करने के लिए तैयार हैं। यह तीन चरणों की प्रक्रिया है:

  • 1 - संदेश को एन्कोड करें
  • 2 - Fernet क्लास को इनिशियलाइज़ करें
  • 3 - एन्कोडेड संदेश को encrypt() मेथड में पास करें

संदेश को एन्कोड करें:

message = "message I want to encrypt".encode()

Fernet क्लास को इनिशियलाइज़ करें:

f = Fernet(key)

संदेश एन्क्रिप्ट करें:

encrypted_message = f.encrypt(message)

पूर्ण कोड उदाहरण

नीचे Python में संदेश एन्क्रिप्ट करने का एक पूर्ण कार्यशील उदाहरण है:

from cryptography.fernet import Fernet

def generate_key():
    """ कुंजी जनरेट करता है और इसे फ़ाइल में सेव करता है """
    key = Fernet.generate_key()
    with open("secret.key", "wb") as key_file:
        key_file.write(key)

def load_key():
    """ पहले से जनरेट की गई कुंजी लोड करें """
    return open("secret.key", "rb").read()

def encrypt_message(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='

Python में डेटा डिक्रिप्ट करें

संदेश को डिक्रिप्ट करने के लिए, हम Fernet लाइब्रेरी से decrypt() मेथड को कॉल करते हैं। याद रखें, हमें कुंजी लोड करने की भी आवश्यकता है, क्योंकि संदेश को डिक्रिप्ट करने के लिए कुंजी की आवश्यकता होती है।

from cryptography.fernet import Fernet

def load_key():
    """ पहले से जनरेट की गई कुंजी लोड करें """
    return open("secret.key", "rb").read()

def decrypt_message(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
  1. Matplotlib और Python का उपयोग करके एक ही फिगर में कई प्लॉट कैसे बनाएं? Matplotlib और Python का उपयोग करके एक ही फिगर में कई प्लॉट कैसे बनाएं?

    Matplotlib डेटा विज़ुअलाइज़ेशन के लिए एक लोकप्रिय Python पैकेज है।डेटा को विज़ुअलाइज़ करना एक महत्वपूर्ण चरण है क्योंकि यह संख्याओं को देखे बिना और जटिल गणनाएँ किए बिना डेटा में क्या हो रहा है, इसे समझने में मदद करता है।यह दर्शकों को मात्रात्मक अंतर्दृष्टि को प्रभावी ढंग से संप्रेषित करने में मदद कर

  1. पायथन में scikit-learn लाइब्रेरी का उपयोग करके इमेज अपलोड और देखें पायथन में scikit-learn लाइब्रेरी का उपयोग करके इमेज अपलोड और देखें

    डेटा प्री-प्रोसेसिंग का अर्थ है डेटा की सफाई, अमान्य डेटा, शोर को हटाना, प्रासंगिक मानों के साथ डेटा को बदलना आदि। इसका मतलब हमेशा टेक्स्ट डेटा नहीं होता; यह इमेज या वीडियो प्रोसेसिंग भी हो सकता है।डेटा प्री-प्रोसेसिंग मूल रूप से सभी डेटा को (जो विभिन्न संसाधनों या एकल संसाधन से एकत्र किया गया है) ए

  1. पायथन में  seaborn  लाइब्रेरी का उपयोग करके डेटा को विज़ुअली कैसे प्रस्तुत करें पायथन में 'seaborn' लाइब्रेरी का उपयोग करके डेटा को विज़ुअली कैसे प्रस्तुत करें

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