1. دروازه ورود (زبان برنامهنویسی) به دنیای رمزنگاری
انتخاب زبان:
🐍 Python – آسان، سریع، افسونگر
⚙️ C/C++ – عمیق و پرقدرت
🦀 Rust – امن، مدرن، سایهنشین
---
2. هنر تاریک اعداد (ریاضیات)
تسلط بر:
Mod، الگوریتم اقلیدس، اعداد اول
ماتریسها، جبر خطی، احتمال
---
3. رمزنگاری کلاسیک
شروع با رمزهای اولیه:
Caesar, Vigenère, XOR, Hill
---
4. هنر مدرن (رمزنگاری پیشرفته)
تسلط بر:
AES, RSA, ECC, SHA-256
هر الگوریتم دفاع یا تهاجم
---
5. کتابخانهها
cryptography, pycryptodome
OpenSSL, RustCrypto
---
6. دنیای واقعی
TLS, امضای دیجیتال، بلاکچین
اینجا مرز تاریکی و روشناییه...
---
7. تجربه
Cryptopals، HackTheBox
ساخت رمزنگار، پیامرسان، RSA
---
8.منابع ناب
📘 Understanding Cryptography
🎓 Coursera: Crypto I (Stanford)
---
انتخاب زبان:
🐍 Python – آسان، سریع، افسونگر
⚙️ C/C++ – عمیق و پرقدرت
🦀 Rust – امن، مدرن، سایهنشین
---
2. هنر تاریک اعداد (ریاضیات)
تسلط بر:
Mod، الگوریتم اقلیدس، اعداد اول
ماتریسها، جبر خطی، احتمال
---
3. رمزنگاری کلاسیک
شروع با رمزهای اولیه:
Caesar, Vigenère, XOR, Hill
---
4. هنر مدرن (رمزنگاری پیشرفته)
تسلط بر:
AES, RSA, ECC, SHA-256
هر الگوریتم دفاع یا تهاجم
---
5. کتابخانهها
cryptography, pycryptodome
OpenSSL, RustCrypto
---
6. دنیای واقعی
TLS, امضای دیجیتال، بلاکچین
اینجا مرز تاریکی و روشناییه...
---
7. تجربه
Cryptopals، HackTheBox
ساخت رمزنگار، پیامرسان، RSA
---
8.منابع ناب
📘 Understanding Cryptography
🎓 Coursera: Crypto I (Stanford)
---
❤2
prime_numbers = []
for num in range(2, 101):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
prime_numbers.append(num)
print("Prime numbers between 1 and 100:")
print(prime_numbers)
algoroots
prime_numbers = [] for num in range(2, 101): is_prime = True for i in range(2, int(num ** 0.5) + 1): if num % i == 0: is_prime = False break if is_prime: prime_numbers.append(num) print("Prime…
یک الگوریتم سریع برای پیدا کردن اعداد اول از 1 تا 100🔥
#python
#python
❤2
import numpy as np
class LinearRegressionGD:
def init(self, learning_rate=0.01, n_iters=1000):
self.learning_rate = learning_rate
self.n_iters = n_iters
self.weights = None
self.bias = None
def fit(self, X, y):
n_samples, n_features = X.shape
self.weights = np.zeros(n_features)
self.bias = 0
for _ in range(self.n_iters):
y_predicted = np.dot(X, self.weights) + self.bias
dw = (1 / n_samples) * np.dot(X.T, (y_predicted - y))
db = (1 / n_samples) * np.sum(y_predicted - y)
self.weights -= self.learning_rate * dw
self.bias -= self.learning_rate * db
def predict(self, X):
return np.dot(X, self.weights) + self.bias
if name == "main":
X = np.array([[1, 2], [2, 3], [4, 5], [3, 6]])
y = np.array([6, 8, 14, 13])
model = LinearRegressionGD(learning_rate=0.01, n_iters=1000)
model.fit(X, y)
predictions = model.predict(X)
print("Weights:", model.weights)
print("Bias:", model.bias)
print("Predictions:", predictions)
❤1
💻دسته بندی مبانیه یادگیریه ماشین:
1. یادگیری تحت نظارت
داده با برچسب؛ مدل یاد میگیرد پیشبینی کند (مثلاً طبقهبندی و رگرسیون)
2. یادگیری بدون نظارت
داده بدون برچسب مدل ساختار یا گروهبندی کشف میکند (مثلاً خوشهبندی)
3. یادگیری نیمهنظارتشده
ترکیبی از داده با و بدون برچسب برای یادگیری.
4. یادگیری تقویتی
عامل با دریافت پاداش یا جریمه یاد میگیرد بهترین تصمیم را بگیرد.
5. یادگیری عمیق
استفاده از شبکههای عصبی بزرگ برای دادههای پیچیده (تصویر، صوت، متن)
1. یادگیری تحت نظارت
داده با برچسب؛ مدل یاد میگیرد پیشبینی کند (مثلاً طبقهبندی و رگرسیون)
2. یادگیری بدون نظارت
داده بدون برچسب مدل ساختار یا گروهبندی کشف میکند (مثلاً خوشهبندی)
3. یادگیری نیمهنظارتشده
ترکیبی از داده با و بدون برچسب برای یادگیری.
4. یادگیری تقویتی
عامل با دریافت پاداش یا جریمه یاد میگیرد بهترین تصمیم را بگیرد.
5. یادگیری عمیق
استفاده از شبکههای عصبی بزرگ برای دادههای پیچیده (تصویر، صوت، متن)
❤1
def chatbot_mood(mood):
if mood > 8:
return "Alright! Let's chat all day! "
elif mood > 5:
return "Hmm... I guess I can talk a little. "
elif mood > 3:
return "Ugh, do we have to? "
elif mood > 1:
return "Can we skip this? I'm tired... "
else:
return "Nope. Not talking. Go away! "
def main():
try:
mood = int(input("Rate my mood from 0 (dead inside) to 10 (super happy): "))
print("Chatbot says:", chatbot_mood(mood))
if mood < 3:
print("(Psst... even bots need coffee sometimes )")
except ValueError:
print("Hey, I asked for a number, not whatever that was!")
if __name__ == "__main__":
main()
❤2
چرا سی پلاس پلاس دوسته مهندسینه؟
✅سرعت بالا و کارایی: حل سریع معادلات پیچیده مثل شبیهسازی جریان هوا روی بال هواپیما (CFD)
✅کنترل حافظه: مدیریت بهینه منابع در شبیهسازی رفتار مواد در تحلیل تنش سازهها
✅کتابخانههای تخصصی: استفاده از Eigen برای حل مسائل جبر خطی در مدلسازی ساختارها
✅موازیسازی: اجرای شبیهسازیهای سنگین به صورت همزمان با OpenMP برای افزایش سرعت
✅ادغام با سختافزار: شبیهسازی و کنترل رباتهای صنعتی در زمان واقعی
#Cpp
✅سرعت بالا و کارایی: حل سریع معادلات پیچیده مثل شبیهسازی جریان هوا روی بال هواپیما (CFD)
✅کنترل حافظه: مدیریت بهینه منابع در شبیهسازی رفتار مواد در تحلیل تنش سازهها
✅کتابخانههای تخصصی: استفاده از Eigen برای حل مسائل جبر خطی در مدلسازی ساختارها
✅موازیسازی: اجرای شبیهسازیهای سنگین به صورت همزمان با OpenMP برای افزایش سرعت
✅ادغام با سختافزار: شبیهسازی و کنترل رباتهای صنعتی در زمان واقعی
#Cpp
❤1
🔐الگوریتم RSA چیست؟
RSA یکی از الگوریتمهای رمزنگاری نامتقارن (کلید عمومی) است که برای رمزنگاری، رمزگشایی و امضای دیجیتال استفاده میشود. نام آن از سه دانشمند گرفته شده: Rivest, Shamir, Adleman.
.......
📌 کاربردهای اصلی RSA:
ارسال پیام امن در اینترنت
رمزنگاری ایمیل یا فایلها
تأیید هویت دیجیتال (Digital Signature)
رمزنگاری کلیدها در SSL/TLS (امنسازی وب)
........
چطور کار میکند؟
الگوریتم RSA از دو کلید استفاده میکند:
کلید عمومی: برای رمزگذاری (همه میتوانند داشته باشند)
کلید خصوصی: برای رمزگشایی (فقط صاحب اصلی دارد)
RSA یکی از الگوریتمهای رمزنگاری نامتقارن (کلید عمومی) است که برای رمزنگاری، رمزگشایی و امضای دیجیتال استفاده میشود. نام آن از سه دانشمند گرفته شده: Rivest, Shamir, Adleman.
.......
📌 کاربردهای اصلی RSA:
ارسال پیام امن در اینترنت
رمزنگاری ایمیل یا فایلها
تأیید هویت دیجیتال (Digital Signature)
رمزنگاری کلیدها در SSL/TLS (امنسازی وب)
........
چطور کار میکند؟
الگوریتم RSA از دو کلید استفاده میکند:
کلید عمومی: برای رمزگذاری (همه میتوانند داشته باشند)
کلید خصوصی: برای رمزگشایی (فقط صاحب اصلی دارد)
❤2
import random
from math import gcd
def modinv(a, m):
for x in range(1, m):
if (a * x) % m == 1:
return x
raise Exception('Modular inverse does not exist.')
def generate_keys():
p = 17
q = 23
n = p * q
phi = (p - 1) * (q - 1)
e = 3
while gcd(e, phi) != 1:
e += 2
d = modinv(e, phi)
return (e, n), (d, n)
def encrypt(public_key, plaintext):
e, n = public_key
return [pow(ord(char), e, n) for char in plaintext]
def decrypt(private_key, ciphertext):
d, n = private_key
return ''.join([chr(pow(char, d, n)) for char in ciphertext])
public, private = generate_keys()
message = "Hi"
cipher = encrypt(public, message)
decrypted = decrypt(private, cipher)
print("Public key:", public)
print("Private key:", private)
print("Original:", message)
print("Encrypted:", cipher)
print("Decrypted:", decrypted)
❤2