Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
19 Сен 2024
2 мин
1523

Как использовать Python для криптографии

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

Основы криптографии в Python

Python предоставляет множество библиотек для работы с криптографией. Одной из наиболее популярных является cryptography. Для установки этой библиотеки выполните следующую команду:

pip install cryptography

Симметричное шифрование

Симметричное шифрование – это процесс, при котором используется один и тот же ключ для шифрования и дешифрования данных. Примером симметричного алгоритма является AES (Advanced Encryption Standard).

Пример использования AES в Python:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
import os

# Генерация ключа и инициализационного вектора (IV)
key = os.urandom(32)  # ключ 256 бит
iv = os.urandom(16)   # инициализационный вектор 128 бит

# Шифрование
cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
encryptor = cipher.encryptor()
padder = padding.PKCS7(128).padder()
data = b"Секретное сообщение"
padded_data = padder.update(data) + padder.finalize()
ciphertext = encryptor.update(padded_data) + encryptor.finalize()

# Дешифрование
decryptor = cipher.decryptor()
unpadder = padding.PKCS7(128).unpadder()
decrypted_data = decryptor.update(ciphertext) + decryptor.finalize()
unpadded_data = unpadder.update(decrypted_data) + unpadder.finalize()
print(unpadded_data)  # Вывод: b'Секретное сообщение'

Асимметричное шифрование

Асимметричное шифрование использует пару ключей: один для шифрования (открытый ключ) и другой для дешифрования (закрытый ключ). Примером асимметричного алгоритма является RSA.

Пример использования RSA в Python:

from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes

# Генерация пары ключей
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

# Шифрование
data = b"Секретное сообщение"
ciphertext = public_key.encrypt(
    data,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)

# Дешифрование
decrypted_data = private_key.decrypt(
    ciphertext,
    padding.OAEP(
        mgf=padding.MGF1(algorithm=hashes.SHA256()),
        algorithm=hashes.SHA256(),
        label=None
    )
)
print(decrypted_data)  # Вывод: b'Секретное сообщение'

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

Рекомендуемые ресурсы для изучения

Не останавливайтесь на достигнутом и продолжайте изучать Python и криптографию!

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий