بله | کانال LightCode 🚀
عکس پروفایل LightCode 🚀L

LightCode 🚀

۴۴۰ عضو
عکس پروفایل LightCode 🚀L
۴۴۰ عضو

LightCode 🚀

از دل تاریکی، نور ساختیم کد زدن، برای ما یه سبک زندگیه لایت‌کد — جایی برای اونایی که دنیا رو با صفر و یک می‌سازنتنها آیدی پشتیبانی : @Light_Code_Supp undefinedمدیریت و شکایات : @Amir_Kbr2 🫀
undefined آموزش حرفه‌ای AES در پایتون
undefined اول مفاهیم رو بفهم:
متقارن بودن یعنی چی؟هم برای رمزنگاری و هم برای رمزگشایی از یه کلید ثابت استفاده می‌کنی.
AES چند بیتیه؟۱۲۸، ۱۹۲، یا ۲۵۶ بیتی. بسته به اینکه چقدر می‌خوای مقاوم باشه.
الگوریتم بلوکیه؟بله، روی بلاک‌های ۱۶ بایتی کار می‌کنه. اگه متن بلندتر باشه باید با padding پرش کنیم.
حالت‌های اجرایی (mode):
ECB (ناامن)
CBC (خیلی رایجه)
CFB / OFB / CTR (برای نیازهای خاص)





undefined پیش‌نیاز پایتونی:
pip install pycryptodome

undefined پیاده‌سازی AES-CBC در پایتون

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64

# کلید باید 16، 24 یا 32 بایت باشه (برای AES-128، AES-192، AES-256)
key = get_random_bytes(32)  # AES-256

# دیتا رو آماده کن
data = b"this is top secret"
block_size = 16

# IV (وکتور اولیه) باید 16 بایت باشه
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CBC, iv)

# رمزنگاری
encrypted = cipher.encrypt(pad(data, block_size))

# ترکیب IV با دیتا برای ارسال یا ذخیره
encrypted_data = base64.b64encode(iv + encrypted)
print("Encrypted:", encrypted_data.decode())

🧯 حالا رمزگشایی:
# اول رمز رو decode کن و IV و ciphertext رو جدا کن

decoded = base64.b64decode(encrypted_data)
iv = decoded[:16]
ciphertext = decoded[16:]

# ساخت مجدد رمز
cipher = AES.new(key, AES.MODE_CBC, iv)
decrypted = unpad(cipher.decrypt(ciphertext), block_size)

print("Decrypted:", decrypted.decode())


undefined نکات امنیتی مهم:
1. هیچ‌وقت از ECB استفاده نکن. چون الگوها رو نشون می‌ده.

2. کلید رو تو کدت نذار. از محیط یا vault بخونش.

3. IV باید منحصر به‌فرد باشه، ولی نیازی به مخفی بودنش نیست.

4. برای فایل‌های بزرگ، از AES-CTR یا حالت‌های استریم استفاده کن.

۱۶:۲۵