Modul Python dari Kriptografi
Pada bab ini, Anda akan belajar secara detail tentang berbagai modul kriptografi dengan Python.
Modul Kriptografi
Ini mencakup semua resep dan primitif, dan menyediakan antarmuka pengkodean tingkat tinggi dengan Python. Anda dapat menginstal modul kriptografi menggunakan perintah berikut -
pip install cryptography
Kode
Anda dapat menggunakan kode berikut untuk mengimplementasikan modul kriptografi -
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)
Keluaran
Kode yang diberikan di atas menghasilkan keluaran sebagai berikut -
Kode yang diberikan di sini digunakan untuk memverifikasi kata sandi dan membuat hashnya. Ini juga mencakup logika untuk memverifikasi kata sandi untuk tujuan otentikasi.
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')
Keluaran
Scenario 1 - Jika Anda telah memasukkan kata sandi yang benar, Anda dapat menemukan output berikut -
Scenario 2 - Jika kami memasukkan kata sandi yang salah, Anda dapat menemukan output berikut -
Penjelasan
Hashlibpaket digunakan untuk menyimpan kata sandi dalam database. Dalam program ini,salt digunakan yang menambahkan urutan acak ke string kata sandi sebelum menerapkan fungsi hash.