Các mô-đun mật mã trong Python

Trong chương này, bạn sẽ tìm hiểu chi tiết về các mô-đun khác nhau của mật mã trong Python.

Mô-đun mật mã

Nó bao gồm tất cả các công thức nấu ăn và nguyên thủy, đồng thời cung cấp một giao diện mã hóa cấp cao bằng Python. Bạn có thể cài đặt mô-đun mật mã bằng lệnh sau:

pip install cryptography

Bạn có thể sử dụng mã sau để triển khai mô-đun mật mã -

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)

Đầu ra

Đoạn mã được đưa ra ở trên tạo ra kết quả sau:

Mã được cung cấp ở đây được sử dụng để xác minh mật khẩu và tạo hàm băm của nó. Nó cũng bao gồm logic để xác minh mật khẩu cho mục đích xác thực.

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

Đầu ra

Scenario 1 - Nếu bạn đã nhập đúng mật khẩu, bạn có thể tìm thấy kết quả sau:

Scenario 2 - Nếu chúng tôi nhập sai mật khẩu, bạn có thể tìm thấy kết quả sau:

Giải trình

Hashlibgói được sử dụng để lưu trữ mật khẩu trong cơ sở dữ liệu. Trong chương trình này,salt được sử dụng để thêm một chuỗi ngẫu nhiên vào chuỗi mật khẩu trước khi thực hiện hàm băm.