ክሪፕቶግራፊ ቤተ-መጻሕፍት በመጠቀም በፓይዘን ውስጥ መረጃን እንዴት ማመስጠር እና ዲክሪፕት ማድረግ እንደሚቻል

በዚህ ማጠናከሪያ ትምህርት ውስጥ መረጃን እንዴት ኢንክሪፕት ማድረግ እና ዲክሪፕት ማድረግ እንደሚችሉ ይማራሉ ፡፡ በፒቶን ውስጥ ምስጢራዊ ምስጠራ ቤተ-መጽሐፍትን በመጠቀም የጽሑፍ ሕብረቁምፊ።

ምስጠራ መረጃን የተፈቀደላቸው ወገኖች ብቻ ሊያገኙበት በሚችል መልኩ ኢንኮዲንግ የማድረግ ሂደት ነው ፡፡ ማንም ሰው እንዲያየው ወይም እንዲደርስበት የማንፈልገውን ውሂብ ደህንነቱ በተጠበቀ ሁኔታ እንድንጠብቅ ያስችለናል።

ተዛማጅ:


በዚህ ምሳሌ ውስጥ የተመጣጠነ ምስጠራን እንጠቀማለን ፣ ይህም ማለት መረጃን ኢንክሪፕት ለማድረግ የምንጠቀምበት ተመሳሳይ ቁልፍ ለዲክሪፕት አገልግሎት የሚውል ነው ፡፡

እዚህ የምንጠቀምበት ምስጠራ ቤተ-መጽሐፍት በ AES ስልተ-ቀመር ላይ የተገነባ ነው ፡፡




በፓይዘን ውስጥ መረጃን ኢንክሪፕት ያድርጉ

በመጀመሪያ ፣ ምስጢራዊ ምስጠራ ቤተ-መጽሐፍትን መጫን ያስፈልገናል-



pip3 install cryptography

ከምስጢራዊነት ቤተ-መጽሐፍት ውስጥ Fernet ማስመጣት አለብን እና ቁልፍን ማመንጨት ይጀምሩ - ይህ ቁልፍ ለተመጣጠነ ምስጠራ / ዲክሪፕት ያስፈልጋል።

ቁልፍን ይፍጠሩ

ቁልፍ ለማመንጨት እኛ _ _ + _ | ብለን እንጠራዋለን ዘዴ

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)

መልእክት አመስጥር

አሁን አንድ መልእክት ለማመስጠር ዝግጁ ነን ፡፡ ይህ ሶስት እርምጃ ሂደት ነው

  • 1 - መልእክቱን ይስጥ (encode)
  • 2 - የፊርኔትን ክፍል ማስጀመር
  • 3 - የተቀየረውን መልእክት ለ def load_key():
    '''
    Loads the key named `secret.key` from the current directory.
    '''
    return open('secret.key', 'rb').read()
    ያስተላልፉ ዘዴ

መልዕክቱን ይስጥ

encrypt()

የ Fernet ክፍልን ያስጀምሩ


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=')