Skip to content

amirk1998/secure-persian-link-encoder

Repository files navigation

🔐 رمزنگار لینک امن فارسی - نسخه دسکتاپ

یک برنامه دسکتاپ زیبا، امن و کاملاً آفلاین برای رمزنگاری آدرس‌های اینترنتی به متن فارسی با استفاده از رمزنگاری AES-256-GCM.

Platform License Encryption


✨ امکانات

🔒 امنیت

  • رمزنگاری AES-256-GCM (استاندارد نظامی)
  • مشتق‌سازی کلید PBKDF2-SHA256 (100,000 تکرار)
  • IV تصادفی برای هر رمزنگاری
  • رمزنگاری احراز هویت‌شده (جلوگیری از دستکاری)
  • محافظت با رمز عبور اختیاری

🎨 رابط کاربری

  • طراحی مدرن با CustomTkinter
  • تم تیره/روشن قابل تعویض
  • افکت‌های زیبای شیشه‌ای
  • انیمیشن‌های روان
  • چیدمان ریسپانسیو

🌐 قابلیت‌ها

  • دو حالت: رمزنگاری و رمزگشایی
  • کدگذاری فارسی (Base-50 با 50 کاراکتر فارسی)
  • کاملاً آفلاین - نیازی به اینترنت ندارد
  • کپی به کلیپ‌بورد
  • باز کردن لینک رمزگشایی‌شده مستقیماً در مرورگر
  • چندپلتفرمی (ویندوز و لینوکس)

📋 پیش‌نیازها

  • Python 3.8 یا بالاتر
  • pip (نصب‌کننده بسته‌های پایتون)

نیازمندی‌های سیستم

  • ویندوز: Windows 10/11 (64-bit)
  • لینوکس: Ubuntu 20.04+ یا معادل
  • رم: حداقل 512 مگابایت
  • فضای دیسک: 100 مگابایت

🚀 نصب

روش 1: اجرا از کد منبع (پیشنهادی برای توسعه)

1. دانلود یا کلون این مخزن

git clone https://github.com/yourusername/secure-persian-link-encoder.git
cd secure-persian-link-encoder/desktop

2. نصب وابستگی‌ها

pip install -r requirements.txt

3. اجرای برنامه

python main.py

روش 2: ساخت فایل اجرایی مستقل

ویندوز:

build_windows.bat

لینوکس:

chmod +x build_linux.sh
./build_linux.sh

فایل اجرایی در پوشه dist/ ساخته می‌شود.


📖 راهنمای استفاده

🔒 رمزنگاری یک لینک

  1. تب رمزنگاری را باز کنید
  2. لینک خود را وارد کنید (مثلاً https://example.com/secret)
  3. اختیاری: یک رمز عبور برای امنیت بیشتر وارد کنید
  4. روی "🔒 رمزنگاری لینک" کلیک کنید
  5. متن فارسی را کپی کنید و از طریق پیامک ارسال کنید

🔓 رمزگشایی متن فارسی

  1. تب رمزگشایی را باز کنید
  2. متن فارسی را جایگذاری کنید
  3. اختیاری: رمز عبور را وارد کنید (اگر هنگام رمزنگاری استفاده شده)
  4. روی "🔓 رمزگشایی لینک" کلیک کنید
  5. لینک را کپی کنید یا مستقیماً در مرورگر باز کنید

🎯 موارد استفاده

مورد 1: ارسال لینک امن از طریق پیامک

مشکل: لینک‌ها در پیامک قابل رهگیری یا ثبت هستند
راه‌حل: رمزنگاری لینک → ارسال متن فارسی → گیرنده رمزگشایی می‌کند

مورد 2: لینک‌های محافظت‌شده با رمز

رمزنگاری با رمز عبور → ارسال متن از طریق پیامک
                      → ارسال رمز از طریق واتساپ
گیرنده برای دسترسی به لینک به هر دو نیاز دارد

مورد 3: مبهم‌سازی لینک‌های حساس

لینک‌های حساس را در دید همه پنهان کنید
متن فارسی برای افراد بیرونی مثل متن تصادفی به نظر می‌رسد

🔐 نکات امنیتی

بدون رمز عبور:

  • ✅ سریع و راحت
  • ✅ برای لینک‌های غیر حساس مناسب است
  • ⚠️ هر کسی که این ابزار را داشته باشد می‌تواند رمزگشایی کند
  • استفاده برای: لینک‌های عمومی، اشتراک‌گذاری موقت

با رمز عبور:

  • ✅ حداکثر امنیت
  • ✅ فقط دارنده رمز عبور می‌تواند رمزگشایی کند
  • ⚠️ باید رمز عبور را به صورت امن به اشتراک بگذارید (کانال جداگانه)
  • استفاده برای: لینک‌های حساس، داده‌های خصوصی

بهترین روش‌ها:

  1. همیشه از لینک‌های HTTPS استفاده کنید برای سایت‌های حساس
  2. از رمزهای قوی استفاده کنید (12+ کاراکتر، حروف بزرگ و کوچک، اعداد، نمادها)
  3. رمز را جداگانه به اشتراک بگذارید (پیامک متن + واتساپ رمز)
  4. لینک‌های یک‌بار مصرف: بعد از استفاده حذف کنید
  5. نرم‌افزار را به‌روز نگه دارید

🏗️ معماری

فرآیند رمزنگاری:

ورودی لینک
   ↓
[رمز عبور اختیاری] → PBKDF2 (100k تکرار) → کلید 32 بایتی
   ↓
رمزنگاری AES-256-GCM
   ↓
[نسخه][Salt][IV][متن رمزشده+برچسب احراز هویت]
   ↓
کدگذاری فارسی Base-50
   ↓
خروجی متن فارسی

فرمت داده:

[1 بایت]   نسخه
[16 بایت]  Salt (برای مشتق‌سازی کلید)
[12 بایت]  IV (بردار اولیه)
[N بایت]   متن رمزشده + برچسب احراز هویت

الفبای فارسی (50 کاراکتر):

32 حرف فارسی: ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی
10 رقم فارسی:  ۰۱۲۳۴۵۶۷۸۹
8 کاراکتر اضافی: آأإؤئة
جمع: 50 کاراکتر برای کدگذاری Base-50

📁 ساختار پروژه

desktop/
├── main.py                 # برنامه اصلی رابط کاربری
├── crypto_core.py          # موتور رمزنگاری
├── requirements.txt        # وابستگی‌های پایتون
├── build_windows.bat       # اسکریپت ساخت ویندوز
├── build_linux.sh          # اسکریپت ساخت لینوکس
├── README.md               # مستندات انگلیسی
├── README_FA.md            # مستندات فارسی
└── icon.ico                # آیکون برنامه (اختیاری)

🧪 تست

اجرای تست‌های داخلی:

python crypto_core.py

این دستور 4 تست را اجرا می‌کند:

  1. ✅ رمزنگاری/رمزگشایی بدون رمز عبور
  2. ✅ رمزنگاری/رمزگشایی با رمز عبور
  3. ✅ تشخیص رمز عبور اشتباه
  4. ✅ مدیریت لینک‌های طولانی

🛠️ عیب‌یابی

خطا: "Module not found"

# نصب مجدد وابستگی‌ها
pip install -r requirements.txt --force-reinstall

خطا: "Failed to execute script"

# اجرا در ترمینال برای دیدن خطای دقیق
python main.py

خطا: "Cannot build executable"

# مطمئن شوید PyInstaller نصب است
pip install pyinstaller --upgrade

لینوکس: "Permission denied"

# اجرایی کردن اسکریپت‌ها
chmod +x build_linux.sh
chmod +x "dist/Secure Persian Link Encoder"

🌍 چندزبانه‌سازی

در حال حاضر پشتیبانی می‌کند:

  • 🇬🇧 انگلیسی (رابط کاربری)
  • 🇮🇷 فارسی (خروجی کدگذاری‌شده)

می‌خواهید زبان‌های بیشتری اضافه کنید؟ مشارکت کنید!


🤝 مشارکت

مشارکت‌ها خوش‌آمد هستند! لطفاً Pull Request ارسال کنید.

نحوه مشارکت:

  1. مخزن را Fork کنید
  2. شاخه ویژگی خود را ایجاد کنید (git checkout -b feature/AmazingFeature)
  3. تغییرات خود را commit کنید (git commit -m 'Add some AmazingFeature')
  4. به شاخه push کنید (git push origin feature/AmazingFeature)
  5. یک Pull Request باز کنید

📝 مجوز

این پروژه تحت مجوز MIT منتشر شده است - متن کامل:

مجوز MIT

حق نسخه‌برداری (c) 2025 نام شما

به هر شخصی که نسخه‌ای از این نرم‌افزار و فایل‌های مستندات مربوطه
(«نرم‌افزار») را دریافت می‌کند، اجازه داده می‌شود که بدون محدودیت
در نرم‌افزار عمل کند، از جمله بدون محدودیت حقوق استفاده، کپی،
تغییر، ادغام، انتشار، توزیع، صدور مجوز فرعی، و/یا فروش نسخه‌های
نرم‌افزار، و اجازه دادن به افرادی که نرم‌افزار به آن‌ها ارائه
می‌شود که همین کار را انجام دهند، مشروط بر شرایط زیر:

اطلاعیه حق نسخه‌برداری فوق و این اطلاعیه اجازه باید در تمام نسخه‌ها
یا بخش‌های قابل توجهی از نرم‌افزار گنجانده شود.

نرم‌افزار «همان‌طور که هست» ارائه می‌شود، بدون هیچ‌گونه ضمانت،
صریح یا ضمنی، از جمله اما نه محدود به ضمانت‌های قابلیت فروش،
تناسب برای یک هدف خاص و عدم نقض. در هیچ شرایطی نویسندگان یا
دارندگان حق نسخه‌برداری مسئول هیچ‌گونه ادعا، خسارت یا مسئولیت
دیگری نخواهند بود، چه در دعوای قراردادی، جرم یا غیره، که ناشی
از، خارج از یا در ارتباط با نرم‌افزار یا استفاده یا معاملات
دیگر در نرم‌افزار باشد.

📧 تماس


🙏 تشکر و قدردانی

  • CustomTkinter - فریم‌ورک رابط کاربری مدرن
  • Cryptography.io - کتابخانه رمزنگاری امن
  • Python - زبان برنامه‌نویسی شگفت‌انگیز

📊 تاریخچه نسخه‌ها

نسخه 1.0.0 (2025-01-01)

  • ✅ انتشار اولیه
  • ✅ رمزنگاری AES-256-GCM
  • ✅ کدگذاری فارسی
  • ✅ تم تیره/روشن
  • ✅ پشتیبانی از ویندوز و لینوکس

🔮 نقشه راه

  • پشتیبانی از macOS
  • اپلیکیشن موبایل (اندروید/iOS)
  • تولید کد QR
  • رمزنگاری دسته‌ای
  • وارد/صادر کردن تنظیمات
  • رابط کاربری چندزبانه
  • الفبای فارسی سفارشی
  • قابلیت لینک‌های منقضی‌شونده

⚠️ سلب مسئولیت

این نرم‌افزار فقط برای اهداف آموزشی و قانونی ارائه شده است. نویسندگان مسئولیتی در قبال سوء استفاده یا فعالیت‌های غیرقانونی که با استفاده از این نرم‌افزار انجام می‌شود، ندارند. همیشه مطمئن شوید که مجوز رمزنگاری و به اشتراک‌گذاری داده‌هایی که با آن‌ها کار می‌کنید را دارید.


💡 نکات و ترفندها

نکته 1: تعویض سریع تم

روی سوئیچ تم کلیک کنید برای تعویض فوری حالت تیره/روشن!

نکته 2: میانبرهای صفحه‌کلید

  • Ctrl+C بعد از کلیک روی دکمه کپی
  • Tab برای حرکت بین فیلدها
  • Enter بعد از تایپ لینک برای رمزنگاری سریع

نکته 3: اشتراک‌گذاری امن رمز عبور

  • رمزنگاری لینک با رمز عبور
  • ارسال متن فارسی از طریق پیامک
  • ارسال رمز عبور از طریق سیگنال/واتساپ
  • حذف پیام‌ها بعد از رمزگشایی توسط گیرنده

نکته 4: تست

همیشه قبل از استفاده برای لینک‌های مهم، رمزنگاری/رمزگشایی را با یک لینک تستی امتحان کنید!


ساخته شده با ❤️ توسط امیرحسین کاوه

🔐 امن بمانید، خصوصی بمانید!