በዚህ ማጠናከሪያ ትምህርት ውስጥ መረጃን እንዴት ኢንክሪፕት ማድረግ እና ዲክሪፕት ማድረግ እንደሚችሉ ይማራሉ ፡፡ በፒቶን ውስጥ ምስጢራዊ ምስጠራ ቤተ-መጽሐፍትን በመጠቀም የጽሑፍ ሕብረቁምፊ።
ምስጠራ መረጃን የተፈቀደላቸው ወገኖች ብቻ ሊያገኙበት በሚችል መልኩ ኢንኮዲንግ የማድረግ ሂደት ነው ፡፡ ማንም ሰው እንዲያየው ወይም እንዲደርስበት የማንፈልገውን ውሂብ ደህንነቱ በተጠበቀ ሁኔታ እንድንጠብቅ ያስችለናል።
ተዛማጅ:
በዚህ ምሳሌ ውስጥ የተመጣጠነ ምስጠራን እንጠቀማለን ፣ ይህም ማለት መረጃን ኢንክሪፕት ለማድረግ የምንጠቀምበት ተመሳሳይ ቁልፍ ለዲክሪፕት አገልግሎት የሚውል ነው ፡፡
እዚህ የምንጠቀምበት ምስጠራ ቤተ-መጽሐፍት በ 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)
አሁን አንድ መልእክት ለማመስጠር ዝግጁ ነን ፡፡ ይህ ሶስት እርምጃ ሂደት ነው
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=')