To encrypt and decrypt a message in Python, you can use libraries like cryptography
that offer robust and easy-to-use encryption methods. Below is a complete example of how to encrypt and decrypt a message using the cryptography
library with the AES (Advanced Encryption Standard) algorithm.
First, ensure you have the cryptography
library installed. If not, you can install it using:
pip install cryptography
Here’s a Python example for encrypting and decrypting a message using cryptography
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
from cryptography.fernet import Fernet # Generate an encryption key def generate_key(): return Fernet.generate_key() # Save the key to a file def save_key(key, filename): with open(filename, 'wb') as key_file: key_file.write(key) # Load the key from a file def load_key(filename): with open(filename, 'rb') as key_file: return key_file.read() # Encrypt a message def encrypt_message(message, key): fernet = Fernet(key) encrypted_message = fernet.encrypt(message.encode()) return encrypted_message # Decrypt a message def decrypt_message(encrypted_message, key): fernet = Fernet(key) decrypted_message = fernet.decrypt(encrypted_message).decode() return decrypted_message # Example usage if __name__ == "__main__": # Generate and save a new key key = generate_key() save_key(key, 'secret.key') # Load the key key = load_key('secret.key') # Message to encrypt message = "This is a secret message" print(f"Original message: {message}") # Encrypt the message encrypted_message = encrypt_message(message, key) print(f"Encrypted message: {encrypted_message}") # Decrypt the message decrypted_message = decrypt_message(encrypted_message, key) print(f"Decrypted message: {decrypted_message}") |
Explanation of the Code:
- Generate a Key:
generate_key()
creates a new encryption key using theFernet.generate_key()
method. - Save the Key:
save_key()
stores the key in a file for later use. - Load the Key:
load_key()
reads the key from a file. - Encrypt a Message:
encrypt_message()
takes a plaintext message and encrypts it using the provided key. - Decrypt a Message:
decrypt_message()
decrypts the encrypted message using the corresponding key.
In the usage example, a new key is generated and saved to a file named secret.key
. This key is then loaded to encrypt and decrypt a test message.