क्रिप्टोग्राफी के पायथन मॉड्यूल

इस अध्याय में, आप पायथन में क्रिप्टोग्राफी के विभिन्न मॉड्यूल के बारे में विस्तार से जानेंगे।

क्रिप्टोग्राफी मॉड्यूल

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

pip install cryptography

कोड

क्रिप्टोग्राफी मॉड्यूल को लागू करने के लिए आप निम्नलिखित कोड का उपयोग कर सकते हैं -

from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher_suite = Fernet(key)
cipher_text = cipher_suite.encrypt("This example is used to demonstrate cryptography module")
plain_text = cipher_suite.decrypt(cipher_text)

उत्पादन

ऊपर दिया गया कोड निम्नलिखित आउटपुट का उत्पादन करता है -

यहां दिए गए कोड का उपयोग पासवर्ड को सत्यापित करने और उसके हैश बनाने के लिए किया जाता है। इसमें प्रमाणीकरण उद्देश्य के लिए पासवर्ड को सत्यापित करने के लिए तर्क भी शामिल है।

import uuid
import hashlib

def hash_password(password):
   # uuid is used to generate a random number of the specified password
   salt = uuid.uuid4().hex
   return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt

def check_password(hashed_password, user_password):
   password, salt = hashed_password.split(':')
   return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()

new_pass = input('Please enter a password: ')
hashed_password = hash_password(new_pass)
print('The string to store in the db is: ' + hashed_password)
old_pass = input('Now please enter the password again to check: ')

if check_password(hashed_password, old_pass):
   print('You entered the right password')
else:
   print('Passwords do not match')

उत्पादन

Scenario 1 - यदि आपने एक सही पासवर्ड डाला है, तो आप निम्न आउटपुट पा सकते हैं -

Scenario 2 - यदि हम गलत पासवर्ड दर्ज करते हैं, तो आप निम्न आउटपुट पा सकते हैं -

व्याख्या

Hashlibपैकेज का उपयोग किसी डेटाबेस में पासवर्ड संग्रहीत करने के लिए किया जाता है। इस कार्यक्रम में,salt उपयोग किया जाता है जो हैश फ़ंक्शन को लागू करने से पहले पासवर्ड स्ट्रिंग में एक यादृच्छिक अनुक्रम जोड़ता है।