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.