Перейти к содержимому

PGP Key Generator

Генерируйте пары ключей OpenPGP RSA или ECC для шифрования электронной почты и цифровых подписей.

Примечание: Ключи генерируются с помощью Web Crypto API в вашем браузере. Ключи в формате PKCS8/SPKI PEM. Используйте GPG для конвертации в OpenPGP формат при необходимости.

Об этом инструменте

PGP (Pretty Good Privacy) — это криптографическая система, обеспечивающая безопасное шифрование электронной почты и цифровые подписи с использованием криптографии с открытым ключом. Изобретённая Филом Циммерманом в 1991 году, она стала стандартом для сквозного шифрования в интернете. PGP необходима журналистам, активистам, бизнес-профессионалам и всем, кто должен защитить конфиденциальную информацию от перехвата. В отличие от централизованных систем безопасности, PGP дает вам полный контроль над вашими ключами шифрования, гарантируя, что только вы и ваши предполагаемые получатели можете читать ваши сообщения.

Чтобы использовать этот генератор PGP-ключей, выберите тип ключа (RSA 2048/4096 или ECC Curve25519) и введите своё имя и адрес электронной почты. Инструмент генерирует открытый ключ для общего доступа и закрытый ключ, который необходимо надёжно хранить. После создания вы можете импортировать ключи в программное обеспечение, совместимое с PGP, например GPG, Thunderbird с Enigmail или Kleopatra, и использовать их для шифрования писем, подписания документов и аутентификации цифровых коммуникаций. Вы также можете загрузить ваш открытый ключ на сервер ключей, например keys.openpgp.org, чтобы другие могли легко вас найти и отправлять вам зашифрованные сообщения.

При создании ключей защитите ваш закрытый ключ надёжной парольной фразой — это добавляет критически важный второй уровень защиты. Ключи ECC обеспечивают более быстрые операции и меньший размер файла по сравнению с RSA, что делает их идеальными для современных систем, а RSA-4096 предоставляет дополнительную защиту при работе с особо конфиденциальными данными. Помните, что браузерная генерация ключей, хотя удобна и безопасна для большинства пользователей, имеет ограничения; для максимальной защиты в условиях высокого риска рассмотрите создание ключей офлайн с использованием GPG. Независимо от того, только ли вы начинаете работать с зашифрованной коммуникацией или управляете безопасностью на уровне предприятия, этот инструмент упрощает процесс генерации ключей до быстрого и простого рабочего процесса.

Часто задаваемые вопросы

Реализация кода

# pip install pgpy
import pgpy
from pgpy.constants import PubKeyAlgorithm, KeyFlags, HashAlgorithm, SymmetricKeyAlgorithm, CompressionAlgorithm

def generate_pgp_keypair(name: str, email: str, passphrase: str = None):
    """Generate an RSA PGP keypair."""
    key = pgpy.PGPKey.new(PubKeyAlgorithm.RSAEncryptOrSign, 4096)
    uid = pgpy.PGPUID.new(name, email=email)
    key.add_uid(
        uid,
        usage={KeyFlags.Sign, KeyFlags.EncryptCommunications},
        hashes=[HashAlgorithm.SHA512, HashAlgorithm.SHA256],
        ciphers=[SymmetricKeyAlgorithm.AES256],
        compression=[CompressionAlgorithm.ZLIB],
    )

    if passphrase:
        key.protect(passphrase, SymmetricKeyAlgorithm.AES256, HashAlgorithm.SHA256)

    public_key = str(key.pubkey)
    private_key = str(key)

    return public_key, private_key

# Generate a keypair
pub, priv = generate_pgp_keypair("Alice Smith", "alice@example.com", "strongpassphrase")
print("=== PUBLIC KEY ===")
print(pub[:100] + "...")
print("=== PRIVATE KEY ===")
print(priv[:100] + "...")

# Encrypt a message
def encrypt_message(public_key_str: str, message: str) -> str:
    pub_key, _ = pgpy.PGPKey.from_blob(public_key_str)
    pgp_msg = pgpy.PGPMessage.new(message)
    encrypted = pub_key.encrypt(pgp_msg)
    return str(encrypted)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.