"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सुरक्षित एन्क्रिप्शन और डिक्रिप्शन के लिए PyCrypto AES-256 का उपयोग कैसे किया जा सकता है?

सुरक्षित एन्क्रिप्शन और डिक्रिप्शन के लिए PyCrypto AES-256 का उपयोग कैसे किया जा सकता है?

2024-11-13 को प्रकाशित
ब्राउज़ करें:681

How Can PyCrypto AES-256 Be Used for Secure Encryption and Decryption?

PyCrypto AES-256 के साथ सुरक्षित एन्क्रिप्शन और डिक्रिप्शन

PyCrypto Python में क्रिप्टोग्राफ़िक संचालन के लिए एक मजबूत लाइब्रेरी है। एक सामान्य कार्य AES-256 का उपयोग करके डेटा को एन्क्रिप्ट और डिक्रिप्ट करना है, जो संवेदनशील डेटा सुरक्षा के लिए उपयोग किया जाने वाला एक उद्योग-मानक एन्क्रिप्शन एल्गोरिदम है।

समस्या परिभाषा:

विश्वसनीय एन्क्रिप्शन का निर्माण और PyCrypto का उपयोग करके डिक्रिप्शन कार्यों के लिए कई संभावित मुद्दों को संबोधित करने की आवश्यकता होती है:

  • उचित लंबाई की एक कुंजी सुनिश्चित करना
  • एक उपयुक्त एन्क्रिप्शन मोड चुनना
  • की भूमिका और उपयोग को समझना इनिशियलाइज़ेशन वेक्टर्स (IVs)

सुरक्षा और कार्यक्षमता को बढ़ाना:

इन चिंताओं को दूर करने के लिए, PyCrypto का उपयोग करके एक कार्यान्वयन विकसित किया गया है:

import base64
import hashlib
from Crypto import Random
from Crypto.Cipher import AES

class AESCipher(object):

    def __init__(self, key):
        self.bs = AES.block_size
        self.key = hashlib.sha256(key.encode()).digest()

    def encrypt(self, raw):
        raw = self._pad(raw)
        iv = Random.new().read(AES.block_size)
        cipher = AES.new(self.key, AES.MODE_CBC, iv)
        return base64.b64encode(iv   cipher.encrypt(raw.encode()))

    def decrypt(self, enc):
        enc = base64.b64decode(enc)
        iv = enc[:AES.block_size]
        cipher = AES.new(self.key, AES.MODE_CBC, iv)
        return AESCipher._unpad(cipher.decrypt(enc[AES.block_size:])).decode('utf-8')

    def _pad(self, s):
        return s   (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)

    @staticmethod
    def _unpad(s):
        return s[:-ord(s[len(s)-1:])]

कुंजी और IV संवर्द्धन:

  • कुंजी का उपयोग करके हैश किया गया है 32-बाइट लंबाई सुनिश्चित करने के लिए SHA-256।
  • प्रत्येक एन्क्रिप्शन ऑपरेशन के लिए एक नया IV उत्पन्न होता है, जो हमलों के खिलाफ अतिरिक्त सुरक्षा प्रदान करता है।

एन्क्रिप्शन मोड :

यह कार्यान्वयन सीबीसी (सिफर ब्लॉक चेनिंग) मोड में एईएस-256 का उपयोग करता है। ब्लॉक में डेटा को एन्क्रिप्ट करने के लिए सीबीसी मोड की सिफारिश की जाती है, और IV का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि प्रत्येक ब्लॉक विशिष्ट रूप से एन्क्रिप्ट किया गया है।

IV विचार:

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

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3