cari
Rumahpembangunan bahagian belakangTutorial PythonPenyulitan data simetri dengan Python

Symmetric data encryption with Python

Selamat datang ke pikoTutorial seterusnya !

Salah satu cara paling mudah untuk melaksanakan penyulitan simetri dalam Python ialah menggunakan algoritma Fernet daripada modul kriptografi. Mari pasang dengan arahan:

pip install cryptography

Memiliki modul kriptografi tersedia, mari tulis skrip penyulitan pertama kami:

# import Fernet
from cryptography.fernet import Fernet
# Generate a key
key = Fernet.generate_key()
# Create a Fernet instance providing the generated key
fernet = Fernet(key)
# Encrypt the data
data = b'Some secret data'
encrypted_data = fernet.encrypt(data)
# Decrypt the data
decrypted_data = fernet.decrypt(encrypted_data)
print(f"Decrypted text: {decrypted_data.decode()}")

Nota untuk pemula: kunci diperlukan semasa menyulitkan dan menyahsulit data, jadi anda tidak boleh menjana setiap kali kunci baharu. Selepas menyulitkan data, anda perlu menyimpan kunci, tetapi kerana ia adalah sesuatu yang membolehkan anda menyahsulit data, ingat untuk menyimpannya dengan cara yang selamat!

Kunci yang dijana dalam contoh di atas terdiri daripada bait rawak. Kekunci sedemikian adalah sangat selamat, walau bagaimanapun selalunya anda memerlukan penyulitan anda berdasarkan kata laluan - dengan kata laluan yang saya maksudkan beberapa frasa yang mudah difahami oleh manusia dan disediakan secara dinamik oleh pengguna sebagai input. Di bawah anda boleh menemui kod Python yang menunjukkan cara mendapatkan kata laluan daripada pengguna sebagai input dan cara mengubahnya menjadi kunci penyulitan:

# import utility for Base64 encoding
import base64
# import Fernet
from cryptography.fernet import Fernet
# import getpass for secure input reading
from getpass import getpass
# read plain text password
plain_text_password: str = getpass(prompt='Password: ')
# Fernet requires 32 byte key, so the password also must have 32 characters
if len(plain_text_password) != 32:
    raise RuntimeError(f'Password length must be equal 32!')
# Encode plain text password to ASCII bytes
password_ascii: bytes = plain_text_password.encode('ascii')
# Fernet requires key to be url-safe base64-encoded
key: bytes = base64.urlsafe_b64encode(password_ascii)
# Create a Fernet instance providing the generated key
fernet = Fernet(key)
# Encrypt the data
data = b'Some secret data'
encrypted_data = fernet.encrypt(data)
# Decrypt the data
decrypted_data = fernet.decrypt(encrypted_data)
print(f"Decrypted text: {decrypted_data.decode()}")

Nota untuk lanjutan: pikoTutorial ini memfokuskan pada cara menggunakan Fernet untuk penyulitan simetri, jadi ia memudahkan penciptaan kunci penyulitan. Dalam amalan, apabila anda perlu mencipta kunci penyulitan daripada kata laluan yang disediakan pengguna, anda harus menggunakan Fungsi Terbitan Utama seperti PBKDF2HMAC.

Atas ialah kandungan terperinci Penyulitan data simetri dengan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimana anda memotong array python?Bagaimana anda memotong array python?May 01, 2025 am 12:18 AM

Sintaks asas untuk pengirim senarai python adalah senarai [Mula: Berhenti: Langkah]. 1. Start adalah indeks elemen pertama yang disertakan, 2.Stop adalah indeks elemen pertama yang dikecualikan, dan 3. Step menentukan saiz langkah antara elemen. Hirisan tidak hanya digunakan untuk mengekstrak data, tetapi juga untuk mengubah suai dan membalikkan senarai.

Di bawah keadaan apa yang mungkin senarai lebih baik daripada tatasusunan?Di bawah keadaan apa yang mungkin senarai lebih baik daripada tatasusunan?May 01, 2025 am 12:06 AM

ListsOutPerFormAraySin: 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData, dan3) MemoryeficiencyForSparsedata, ButmayHaveslightPerformancecostSincertaor.

Bagaimana anda boleh menukar array python ke senarai python?Bagaimana anda boleh menukar array python ke senarai python?May 01, 2025 am 12:05 AM

ToConvertapythonarraytoalist, usethelist () constructororageneratorexpression.1) importTheArrayModuleAndCreateeanArray.2) uselist (arr) atau [xforxinarr] toConvertittoalist, urusanPengerasiPormanceAndMemoryeficiencyForlargedatasets.

Apakah tujuan menggunakan tatasusunan apabila senarai ada di Python?Apakah tujuan menggunakan tatasusunan apabila senarai ada di Python?May 01, 2025 am 12:04 AM

ChoosearraysoverListSinpythonforbetterperformanceandMemoryeficiencySpecificscenarios.1) largenumericaldatasets: arraysreducememoryusage.2) Prestasi-CRITICALICALLY:

Terangkan bagaimana untuk melangkah melalui unsur -unsur senarai dan array.Terangkan bagaimana untuk melangkah melalui unsur -unsur senarai dan array.May 01, 2025 am 12:01 AM

Di Python, anda boleh menggunakan gelung, menghitung dan menyenaraikan pemantauan ke senarai melintasi; Di Java, anda boleh menggunakan tradisional untuk gelung dan dipertingkatkan untuk gelung untuk melintasi tatasusunan. 1. Kaedah Traversal Senarai Python termasuk: untuk gelung, penghitungan dan pemahaman senarai. 2. Java Array Traversal Kaedah termasuk: tradisional untuk gelung dan dipertingkatkan untuk gelung.

Apakah penyataan suis python?Apakah penyataan suis python?Apr 30, 2025 pm 02:08 PM

Artikel ini membincangkan pernyataan baru "Match" Python yang diperkenalkan dalam versi 3.10, yang berfungsi sebagai setara dengan menukar pernyataan dalam bahasa lain. Ia meningkatkan kebolehbacaan kod dan menawarkan manfaat prestasi ke atas tradisional if-elif-el

Apakah kumpulan pengecualian dalam Python?Apakah kumpulan pengecualian dalam Python?Apr 30, 2025 pm 02:07 PM

Kumpulan Pengecualian dalam Python 3.11 Membenarkan mengendalikan pelbagai pengecualian secara serentak, meningkatkan pengurusan ralat dalam senario serentak dan operasi kompleks.

Apakah anotasi fungsi dalam python?Apakah anotasi fungsi dalam python?Apr 30, 2025 pm 02:06 PM

Fungsi anotasi dalam python Tambah metadata ke fungsi untuk pemeriksaan jenis, dokumentasi, dan sokongan IDE. Mereka meningkatkan kebolehbacaan kod, penyelenggaraan, dan penting dalam pembangunan API, sains data, dan penciptaan perpustakaan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa