Python kriptografi Kütüphanesine Genel Bakış
Hazmat ve üst düzey ilkel yapıları kurun; kütüphane yapısını anlayın.
Python kriptografi Kütüphanesine Genel Bakış, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.
cryptography Kitaplığı Neden Kullanılır?
Python cryptography kitaplığı (PyCA tarafından geliştirilmiştir), hem yüksek düzeyli Fernet arayüzü hem de düşük düzeyli hazmat temel yapıtaşları sağlar. OpenSSL'i sarmalar ve Python'da üretim amaçlı kriptografi için topluluk standardıdır.
Kurulum ve Yapı
Kurulum: pip install cryptography. İki katman vardır: cryptography.fernet (güvenli, tercihleri belirlenmiş simetrik şifreleme) ve cryptography.hazmat.primitives (AES, RSA, EC, özetler, HMAC — dikkatle kullanın).
Fernet: Güvenli Simetrik Şifreleme
Fernet, zaman damgasıyla birlikte AES-128-CBC + HMAC-SHA256 kullanır. IV oluşturmayı, dolguyu ve MAC işlemlerini otomatik olarak yönetir. Yapılandırma değerlerini, belirteçleri veya küçük ikili veri parçalarını şifrelemek için idealdir.
from cryptography.fernet import Fernet
# Generate a URL-safe base64-encoded 32-byte key
key = Fernet.generate_key()
f = Fernet(key)
token = f.encrypt(b"my secret data")
print("Encrypted:", token[:40], "...")
plain = f.decrypt(token)
print("Decrypted:", plain)Hazmat Temel Yapıtaşları: Özetler
Hazmat katmanı SHA-2, SHA-3, BLAKE2 ve daha fazlasını sağlar:
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.backends import default_backend
digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
digest.update(b"Hello, ")
digest.update(b"world!")
result = digest.finalize()
print("SHA-256:", result.hex())Hazmat Temel Yapıtaşları: HMAC
İleti kimlik doğrulaması için HMAC:
from cryptography.hazmat.primitives import hmac, hashes
import os
key = os.urandom(32)
h = hmac.HMAC(key, hashes.SHA256())
h.update(b"authenticated message")
signature = h.finalize()
print("HMAC-SHA256:", signature.hex())
# Verify
h2 = hmac.HMAC(key, hashes.SHA256())
h2.update(b"authenticated message")
h2.verify(signature) # raises if invalidAnahtarları Serileştirme
Anahtarları depolama veya aktarım için PEM/DER biçiminde serileştirin:
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
pem = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.BestAvailableEncryption(b"passphrase")
)
print(pem[:60])PEM'den Anahtar Yükleme
Diskten bir PEM anahtarı yükleyin:
from cryptography.hazmat.primitives.serialization import load_pem_private_key
with open("private_key.pem", "rb") as f:
pem_data = f.read()
key = load_pem_private_key(pem_data, password=b"passphrase")
print("Key loaded, size:", key.key_size, "bits")X.509 Sertifikalarını Yönetme
TLS sertifikalarını ayrıştırın ve inceleyin:
from cryptography import x509
import datetime
with open("cert.pem", "rb") as f:
cert = x509.load_pem_x509_certificate(f.read())
print("Subject:", cert.subject)
print("Issuer:", cert.issuer)
print("Not valid after:", cert.not_valid_after_utc)
print("Serial:", cert.serial_number)Rastgele Bayt Oluşturma
Kriptografik rastgelelik için her zaman os.urandom veya secrets kullanın:
import os, secrets
# Cryptographically secure 32-byte key
key = os.urandom(32)
print("Random key:", key.hex())
# secrets module: URL-safe token
token = secrets.token_urlsafe(32)
print("URL-safe token:", token)Hazmat Tuzaklarından Kaçınma
Hazmat API'sine "Tehlikeli Malzemeler" denmesinin bir nedeni vardır. Yaygın hatalar şunlardır: tek kullanımlık değerleri yeniden kullanmak, ECB kipini kullanmak, kimlik doğrulama etiketlerini atlamak ve MAC'leri == ile karşılaştırmak. Mümkün olduğunda yüksek düzeyli API'leri kullanın.
Bilgi Kontrolü
Fernet şifrelemesi, ham AES-CBC'nin tek başına sağlamadığı hangi özelliği sağlar?
Ders Özeti
cryptography kitaplığının iki katmanı vardır: güvenli Fernet ve esnek hazmat. Simetrik şifreleme için Fernet'i, AES-GCM, RSA, ECDSA ve sertifika yönetimi için hazmat'ı kullanın. Anahtarlar için her zaman os.urandom kullanın. Hazmat tuzaklarından kaçının — kimlik doğrulamalı kipleri tercih edin.
Sıkça Sorulan Sorular
“Python kriptografi Kütüphanesine Genel Bakış” dersi ücretsiz mi?
Evet — “Python kriptografi Kütüphanesine Genel Bakış” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.
“Python kriptografi Kütüphanesine Genel Bakış” dersinde ne öğreneceğim?
Hazmat ve üst düzey ilkel yapıları kurun; kütüphane yapısını anlayın. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Python kriptografi Kütüphanesine Genel Bakış” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Python kriptografi Kütüphanesine Genel Bakış
- Python'da AES-GCM ile Şifreleme ve Şifre Çözme
- Python'da RSA ve ECDSA Anahtar Çiftleri
- Yaygın Python Kripto Hataları ve Güvenli Kalıplar