Python Kriptografi Modülleri
Bu bölümde, Python'daki çeşitli kriptografi modülleri hakkında ayrıntılı bilgi edineceksiniz.
Kriptografi Modülü
Tüm tarifleri ve ilkelleri içerir ve Python'da üst düzey bir kodlama arayüzü sağlar. Aşağıdaki komutu kullanarak kriptografi modülünü kurabilirsiniz -
pip install cryptography
Kod
Şifreleme modülünü uygulamak için aşağıdaki kodu kullanabilirsiniz -
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)
Çıktı
Yukarıda verilen kod aşağıdaki çıktıyı üretir -
Burada verilen kod, parolayı doğrulamak ve karmasını oluşturmak için kullanılır. Ayrıca, kimlik doğrulama amacıyla parolayı doğrulama mantığını da içerir.
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')
Çıktı
Scenario 1 - Doğru bir şifre girdiyseniz, aşağıdaki çıktıyı bulabilirsiniz -
Scenario 2 - Yanlış şifre girersek, aşağıdaki çıktıyı bulabilirsiniz -
Açıklama
Hashlibpaketi, şifreleri bir veritabanında saklamak için kullanılır. Bu programda,salt karma işlevini uygulamadan önce parola dizesine rastgele bir sıra ekleyen kullanılır.