PGP Key Generator
이메일 암호화 및 디지털 서명을 위해 RSA 또는 ECC OpenPGP 키 쌍을 생성합니다.
이 도구 소개
PGP(Pretty Good Privacy)는 공개 키 암호화를 사용하여 안전한 이메일 암호화와 디지털 서명을 가능하게 하는 암호화 시스템입니다. 1991년 Phil Zimmermann에 의해 발명되었으며 인터넷 전체에서 엔드투엔드 암호화 통신의 표준이 되었습니다. PGP는 기자, 활동가, 비즈니스 전문가, 민감한 정보를 가로채기로부터 보호해야 하는 모든 사람에게 필수적입니다. 중앙 집중식 보안 시스템과 달리 PGP는 암호화 키에 대한 완전한 제어를 제공하여 오직 당신과 의도한 수신자만 당신의 메시지를 읽을 수 있도록 보장합니다.
이 PGP 키 생성기를 사용하려면 키 유형(RSA 2048/4096 또는 ECC Curve25519)을 선택하고 이름과 이메일 주소를 입력하세요. 도구는 다른 사용자와 공유할 공개 키와 안전하게 보관해야 할 개인 키를 생성합니다. 생성된 후 GPG, Enigmail이 있는 Thunderbird 또는 Kleopatra와 같은 PGP 호환 소프트웨어에 키를 가져오면 이메일 암호화, 문서 서명 및 디지털 통신 인증에 사용할 수 있습니다. 또한 공개 키를 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.