"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment améliorer la protection des données grâce à des techniques de cryptage avancées ?

Comment améliorer la protection des données grâce à des techniques de cryptage avancées ?

Publié le 2024-11-08
Parcourir:210

How to Enhance Data Protection with Advanced Encryption Techniques?

Cryptage à clé symétrique : Fernet

Python dispose d'une bibliothèque de cryptographie robuste offrant Fernet, un système de cryptage sécurisé conforme aux meilleures pratiques. Fernet utilise le cryptage AES CBC, la signature HMAC ainsi que les informations de version et d'horodatage pour protéger les données. Il est recommandé de générer une clé avec Fernet.generate_key().

from cryptography.fernet import Fernet

key = Fernet.generate_key()
message = 'John Doe'
token = Fernet(key).encrypt(message.encode())
decrypted_message = Fernet(key).decrypt(token).decode()  # 'John Doe'

Alternatives :

Obscurcissement : Si seulement l'obscurité est nécessaire, l'encodage base64 peut suffire. Pour la sécurité des URL, utilisez urlsafe_b64encode().

import base64

obscured_message = base64.urlsafe_b64encode(b'Hello world!')  # b'eNrzSM3...='

Intégrité uniquement : HMAC peut fournir une garantie d'intégrité des données sans cryptage.

import hmac
import hashlib

key = secrets.token_bytes(32)
signature = hmac.new(key, b'Data', hashlib.sha256).digest()

Cryptage AES-GCM : AES-GCM fournit à la fois le cryptage et l'intégrité, sans remplissage.

import base64

key = secrets.token_bytes(32)
ciphertext = aes_gcm_encrypt(b'Data', key)  # base64-encoded ciphertext and tag
decrypted_data = aes_gcm_decrypt(ciphertext, key)  # b'Data'

Autres approches :

AES CFB : Similaire à CBC sans remplissage.

import base64

key = secrets.token_bytes(32)
ciphertext = aes_cfb_encrypt(b'Data', key)  # base64-encoded ciphertext and IV
decrypted_data = aes_cfb_decrypt(ciphertext, key)  # b'Data'

AES ECB : Attention : non sécurisé ! Non recommandé pour les applications du monde réel.

import base64

key = secrets.token_bytes(32)
ciphertext = aes_ecb_encrypt(b'Data', key)  # base64-encoded ciphertext
decrypted_data = aes_ecb_decrypt(ciphertext, key)  # b'Data'
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729591101. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3