Как шифровать файлы в Python: полное руководство с примерами

Для шифрования файлов в Python вы можете использовать библиотеку cryptography. Вот простой пример кода:


from cryptography.fernet import Fernet

# Генерация ключа
key = Fernet.generate_key()

# Создание объекта шифрования
cipher = Fernet(key)

# Шифрование файла
with open('исходный_файл.txt', 'rb') as file:
    data = file.read()
    encrypted_data = cipher.encrypt(data)

# Сохранение зашифрованных данных в новый файл
with open('зашифрованный_файл.txt', 'wb') as file:
    file.write(encrypted_data)

Обратите внимание, что вам потребуется установить библиотеку cryptography, прежде чем использовать код выше. Вы можете сделать это с помощью команды pip install cryptography.

Детальный ответ

Как шифровать файлы с помощью Python?

Шифрование файлов - важный аспект безопасности данных. В этой статье я расскажу вам, как использовать Python для шифрования файлов с помощью популярного алгоритма шифрования AES.

Установка библиотеки Cryptography

Для начала нам понадобится установить библиотеку Cryptography, которая предоставляет функциональность шифрования. Для установки выполните следующую команду:

pip install cryptography

Шифрование файла

Давайте начнем с создания функции для шифрования файла. Вот пример:


    from cryptography.fernet import Fernet

    def encrypt_file(file_path, key):
        with open(file_path, 'rb') as file:
            data = file.read()
        
        cipher_suite = Fernet(key)
        encrypted_data = cipher_suite.encrypt(data)
        
        with open(file_path, 'wb') as file:
            file.write(encrypted_data)
            
        print("Файл успешно зашифрован!")
    

В этом примере мы используем библиотеку Cryptography и ее класс Fernet для шифрования данных. Функция принимает путь к файлу и ключ шифрования в качестве входных параметров. Она открывает файл, считывает его содержимое, шифрует данные с использованием ключа и перезаписывает файл с зашифрованными данными.

Генерация ключа шифрования

Перед тем, как мы сможем зашифровать файлы, нам понадобится ключ шифрования. Вот функция для генерации случайного ключа:


    from cryptography.fernet import Fernet

    def generate_key():
        key = Fernet.generate_key()
        return key
    

Вызов функции generate_key() позволяет сгенерировать случайный ключ шифрования, который будет использоваться для шифрования и расшифрования файлов.

Расшифровка файла

Теперь у нас есть функция для шифрования файла и ключ шифрования. Но что, если мы захотим расшифровать зашифрованный файл? Вот пример функции для расшифровки:


    from cryptography.fernet import Fernet

    def decrypt_file(file_path, key):
        with open(file_path, 'rb') as file:
            data = file.read()
        
        cipher_suite = Fernet(key)
        decrypted_data = cipher_suite.decrypt(data)
        
        with open(file_path, 'wb') as file:
            file.write(decrypted_data)
            
        print("Файл успешно расшифрован!")
    

Функция decrypt_file() принимает путь к зашифрованному файлу и ключ шифрования. Она открывает файл, считывает его содержимое, расшифровывает данные с использованием ключа и перезаписывает файл с расшифрованными данными.

Использование шифрования

Теперь, когда у нас есть все необходимые функции, мы можем приступить к шифрованию и расшифровке файлов. Вот как это можно сделать:


    # Генерация ключа
    key = generate_key()
    
    # Путь к файлу, который нужно зашифровать
    file_path = "path/to/file.txt"
    
    # Шифрование файла
    encrypt_file(file_path, key)
    
    # Расшифровка файла
    decrypt_file(file_path, key)
    

В этом примере мы сначала генерируем случайный ключ шифрования с помощью функции generate_key(). Затем мы указываем путь к файлу, который нужно зашифровать. Мы вызываем функцию encrypt_file() для шифрования файла с использованием сгенерированного ключа. Затем вызываем функцию decrypt_file() для расшифровки файла с тем же ключом.

В заключение

Теперь вы знаете, как использовать Python для шифрования файлов с помощью алгоритма AES. При шифровании и расшифровке файлов используйте библиотеку Cryptography и функции encrypt_file() и decrypt_file(). Будьте осторожны и храните ключи в безопасности, чтобы защитить свои данные.

Видео по теме

Шифруем файлы с помощью Python

Шифрование и дешифрование файлов в Python

Шифрование файлов PYTHON в ОПЕРАТИВНОЙ памяти | PyAesCrypt + IO

Похожие статьи:

🌈Как сделать цветную консоль в Python

🔎 Как добавить переменную в словарь Python? Учимся с лёгкостью! 🐍

🔥 Как удалить число из массива Python? Простой метод без головной боли!

Как шифровать файлы в Python: полное руководство с примерами

🚀 Как положить сайт через питон: пошаговое руководство для начинающих 👨‍💻

🔀 Как поменять местами буквы в строке на Python: легко и быстро?

Как создать .exe файл в Python с картинками: подробное руководство и шаги