RSA Anahtar Çifti Üretici
RSA-2048 veya RSA-4096 anahtar çiftlerini PEM formatında oluşturur.
Anahtarlar tamamen tarayıcınızda Web Crypto API kullanılarak oluşturulur ve hiçbir sunucuya gönderilmez.
Bu araç hakkında
RSA anahtar çifti oluşturucu, RSA (Rivest-Shamir-Adleman) algoritmasına dayalı olarak şifreleme için bir genel anahtar ve şifre çözme için bir özel anahtar olmak üzere matematiksel olarak bağlantılı iki şifreleme anahtarı oluşturur. Bu anahtarlar, İnternet üzerinde güvenli iletişim, dijital imzalar ve kimlik doğrulama için gereklidir. Güvenli bir API oluştursanız, sertifika tabanlı kimlik doğrulama uygulasanız veya şifrelenmiş mesajlaşmayı ayarlasanız da, güvenilir bir RSA anahtar oluşturucu modern güvenlik altyapısının temel bir aracıdır.
Bu aracı kullanmak için, istediğiniz anahtar boyutunu (RSA-2048 veya RSA-4096) seçin, oluştur düğmesine tıklayın ve araç her iki anahtarı standart PEM biçiminde üretecek ve hemen kullanıma hazır olacaktır. RSA-2048 çoğu uygulama için uygundur ve öngörülebilir gelecek için güçlü güvenlik sağlar, while RSA-4096 biraz daha yavaş işlemlerin maliyeti karşılığında ek güvenlik marjı sunar. Oluşturma işleminden sonra, uygulamanızda, yapılandırma dosyalarında veya şifreleme sistemlerinde kullanmak için her anahtarı ayrı ayrı kopyalayabilirsiniz.
Sıkça Sorulan Sorular
Kod Uygulaması
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.backends import default_backend
# Generate RSA key pair
def generate_rsa_key_pair(
key_size: int = 2048,
public_exponent: int = 65537,
) -> tuple[rsa.RSAPrivateKey, rsa.RSAPublicKey]:
private_key = rsa.generate_private_key(
public_exponent=public_exponent,
key_size=key_size,
backend=default_backend(),
)
return private_key, private_key.public_key()
# Serialize to PEM
def private_key_to_pem(key: rsa.RSAPrivateKey, password: bytes | None = None) -> str:
encryption = (
serialization.BestAvailableEncryption(password)
if password else serialization.NoEncryption()
)
return key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=encryption,
).decode()
def public_key_to_pem(key: rsa.RSAPublicKey) -> str:
return key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo,
).decode()
# Sign and verify
def sign(message: bytes, private_key: rsa.RSAPrivateKey) -> bytes:
return private_key.sign(message, padding.PKCS1v15(), hashes.SHA256())
def verify(message: bytes, signature: bytes, public_key: rsa.RSAPublicKey) -> bool:
try:
public_key.verify(signature, message, padding.PKCS1v15(), hashes.SHA256())
return True
except Exception:
return False
if __name__ == "__main__":
priv, pub = generate_rsa_key_pair(2048)
print(private_key_to_pem(priv))
print(public_key_to_pem(pub))
msg = b"Hello, RSA!"
sig = sign(msg, priv)
print("Signature valid:", verify(msg, sig, pub))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.