⚙️ Как зашифровать файл в Python: простое руководство для начинающих

В Python существует несколько способов шифрования файлов. Один из самых популярных - использование модуля cryptography.

Вот пример кода, который шифрует файл с использованием симметричного алгоритма шифрования AES:


from cryptography.fernet import Fernet

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

# Создание объекта Fernet с использованием сгенерированного ключа
cipher = Fernet(key)

# Открытие и чтение файла, который нужно зашифровать
with open('input_file.txt', 'rb') as f:
    data = f.read()

# Шифрование данных
encrypted_data = cipher.encrypt(data)

# Запись зашифрованных данных в новый файл
with open('encrypted_file.txt', 'wb') as f:
    f.write(encrypted_data)
    

Не забудьте заменить "input_file.txt" и "encrypted_file.txt" соответствующими именами ваших файлов.

После запуска этого кода, вы получите зашифрованный файл "encrypted_file.txt". Для расшифровки файла вы можете использовать следующий код:


# Открытие и чтение зашифрованного файла
with open('encrypted_file.txt', 'rb') as f:
    encrypted_data = f.read()

# Расшифровка данных
decrypted_data = cipher.decrypt(encrypted_data)

# Запись расшифрованных данных в новый файл
with open('decrypted_file.txt', 'wb') as f:
    f.write(decrypted_data)
    

После выполнения этого кода, вы получите расшифрованный файл "decrypted_file.txt".

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

Как зашифровать файл в Python

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

1. Шифрование с использованием модуля cryptography

Модуль cryptography является мощным инструментом для шифрования данных в Python. Следующий пример демонстрирует использование данного модуля для зашифровки файла:


from cryptography.fernet import Fernet

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

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

# Открытие файла для чтения
with open('исходный_файл.txt', 'rb') as file:
    original_data = file.read()

# Шифрование данных
encrypted_data = cipher_suite.encrypt(original_data)

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

В этом примере мы сначала генерируем секретный ключ, который будет использоваться для шифрования и дешифрования данных. Затем мы создаем объект шифрования, и открываем исходный файл для чтения. Далее мы шифруем данные и записываем их в новый файл.

2. Шифрование с использованием модуля hashlib

Модуль hashlib предоставляет возможность шифрования данных с использованием различных алгоритмов хеширования. Вот пример шифрования файла с использованием SHA-256:


import hashlib

# Открытие файла для чтения
with open('исходный_файл.txt', 'rb') as file:
    original_data = file.read()

# Хеширование данных
hashed_data = hashlib.sha256(original_data).digest()

# Запись хеша в новый файл
with open('зашифрованный_файл.txt', 'wb') as file:
    file.write(hashed_data)
    

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

3. Шифрование с использованием сторонних библиотек

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


from Cryptodome.Cipher import AES
from Cryptodome.Random import get_random_bytes
from Cryptodome.Util.Padding import pad

# Генерация случайного ключа
key = get_random_bytes(16)

# Создание объекта шифрования
cipher = AES.new(key, AES.MODE_ECB)

# Открытие файла для чтения
with open('исходный_файл.txt', 'rb') as file:
    original_data = file.read()

# Шифрование данных
padded_data = pad(original_data, AES.block_size)
encrypted_data = cipher.encrypt(padded_data)

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

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

Заключение

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

Видео по теме

Professional Data Encryption in Python

How to Encrypt and Decrypt Files using Python

Encryption program in Python 🔒

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

📚 Как установить sklearn python с помощью простых шагов? 🐍

Узнайте, как легко писать строки наоборот в Python! 🔄

Где используют язык программирования Питон? 🐍

⚙️ Как зашифровать файл в Python: простое руководство для начинающих

Как задокументировать код в Python: горячие клавиши и смайлы для удобства 😎🚀

Как установить библиотеки Python: подробная инструкция

Как взять строку из файла python? Легкий гайд и примеры!