Skip to content

🔐 سازنده پسورد امن (PWA) با رابط فارسی/RTL و UI مدرن Tailwind؛ تولید رمزهای قوی با Web Crypto، انتخاب طول/کاراکترها، سطوح امنیت، نمایش قدرت، کپی سریع و تاریخچه با LocalStorage. 🚀 آفلاین و نصب‌پذیر، موبایل‌فرست، بدون بک‌اند؛ آماده دمو برای کارفرما و دیپلوی روی cPanel/GitHub Pages.

License

Notifications You must be signed in to change notification settings

MHDcoderC/password-generator

Repository files navigation

<<<<<<< HEAD

سازنده پسورد امن – Password Generator (FA/EN)

Stack Tailwind CSS Vite JavaScript PWA

یک اپلیکیشن سبک، مدرن و قابل‌توسعه برای ساخت رمزهای قوی با UI شیشه‌ای (Glassmorphism)، پارتیکل سبک، PWA و Web Crypto API. این پروژه با Tailwind + Vanilla JS + Vite ساخته شده است.

امکانات (FA)

  • ساخت رمز با سطوح سختی مختلف (آسان/متوسط/سخت) و گزینه‌های سفارشی (حروف بزرگ/کوچک/اعداد/نمادها)
  • نمایش رمز تولیدشده در یک مدال با عملیات: ذخیره، کپی، تولید مجدد
  • توست‌های زیبا برای بازخورد عملیات (ذخیره شد، کپی شد، حذف شد و ...)
  • تاریخچه رمزها با امکان کپی، حذف آیتم و حذف کلی
  • حالت امن (Secure Save): ذخیره‌سازی رمزها به‌صورت رمزنگاری‌شده (AES‑GCM) با «کلید اصلی» کاربر. در این حالت متن رمز ذخیره نمی‌شود و تنها با واردکردن کلید قابل نمایش/کپی است.
  • ذخیره‌سازی محلی: نگهداری هش SHA-256 هر رمز؛ در حالت عادی متن رمز نیز برای نمایش/کپی ذخیره می‌شود.
  • لودر اولیه هنگام شروع برنامه و پس‌زمینه پارتیکلی سبک
  • پس‌زمینه پارتیکلی سبک و عملکرد بالا
  • فونت فارسی جذاب Vazirmatn
  • فوتر ثابت: «توسط mmdcode محمد سجادی نوشته شده»

امنیت (FA)

  • تولید رمز با Web Crypto API (secure randomness) انجام می‌شود.
  • هش هر رمز با Web Crypto API (SHA-256) محاسبه و روی دستگاه کاربر نگهداری می‌شود.
  • «حالت امن» (اختیاری): با فعال‌کردن گزینه «ذخیره امن (AES‑GCM)» در تنظیمات پیشرفته، متن رمزها ذخیره نمی‌شود؛ فقط نسخه رمزنگاری‌شده به‌همراه IV نگهداری می‌شود. کلید اصلی توسط کاربر تعیین می‌شود و صرفاً hint آن در localStorage ذخیره می‌گردد.
  • برای Clipboard API و PWA، اجرای HTTPS/localhost ضروری است. Fallback ناامن حذف شده است.
  • برای عملکرد کامل API کلیپ‌بورد، اپ را روی HTTPS یا localhost اجرا کنید؛ در محیط ناامن، fallback برای کپی تعبیه شده است.
  • اطلاعات فقط روی دستگاه کاربر باقی می‌ماند و جایی ارسال نمی‌شود. برای امنیت بالاتر، از ذخیره رمزهای بسیار حساس خودداری کنید.

اجرا (FA)

  1. نصب وابستگی‌ها (Tailwind فقط برای بیلد CSS استفاده می‌شود):
npm install
  1. توسعه با Vite (HTTPS توصیه می‌شود):
npm run dev

Vite سرور محلی را اجرا می‌کند. برای Clipboard API کامل و SW، روی HTTPS یا localhost اجرا کنید. استایل‌ها کاملاً با Tailwind (@layer/@apply در src/input.css) تولید می‌شوند و فایل CSS سفارشی حذف شده است. فایل‌های PWA (manifest.webmanifest, sw.js) در روت پروژه قرار دارند و در بیلد در dist/ کپی می‌شوند.

  1. Build نهایی:
npm run build && npm run preview

تکنولوژی‌ها (FA)

  • Tailwind CSS
  • JavaScript (Vanilla)
  • Web Crypto API (SHA-256، اعداد تصادفی امن)
  • PWA (Service Worker, Manifest)
  • Vite (Dev/Build)

راهنمای توسعه/مشارکت (FA)

  • ساختار ساده است و وابستگی‌ها حداقلی‌اند. اگر فیچر جدید اضافه می‌کنید، تلاش کنید بدون فریم‌ورک باقی بماند، مگر اینکه ارزش افزوده مشخص باشد.
  • برای فیچرهای امنیتی (مانند ذخیره‌سازی رمزنگاری‌شده)، حتماً threat model کوتاه در PR بنویسید.
  • تلاش کنید UI/UX حداقلی، سریع و RTL را حفظ کنید. آیکن‌ها و تعاملات باید دسترس‌پذیر باشند (aria-label، کلید Esc برای بستن مدال‌ها).
  • اگر روی امنیت کار می‌کنید: threat-model کوتاه، مدیریت salt تصادفی per-user، و انتخاب تعداد iteration مناسب برای PBKDF2 را مستندسازی کنید.
  • اجرای «اجبار حداقل یک کاراکتر از هر گروه انتخاب‌شده» در تولید رمز را می‌توانید توسعه دهید (در حال حاضر معیار قدرت پوشش داده می‌شود).

حالت امن (Secure Save) – چگونه کار می‌کند؟

  1. فعال‌سازی از مسیر: تنظیمات پیشرفته → تیک «ذخیره امن (AES‑GCM)»
  2. تعیین کلید اصلی (دکمه «تنظیم کلید اصلی»): کلید با PBKDF2 (SHA‑256, 150k iters) به کلید AES‑GCM تبدیل و فقط در حافظه نگهداری می‌شود. Hint در localStorage ذخیره می‌شود.
  3. ذخیره رمز: فقط نسخه رمزنگاری‌شده ذخیره می‌شود (base64 شامل IV||Cipher).
  4. کپی از تاریخچه: ابتدا تلاش برای خواندن متن؛ اگر نبود، رمزگشایی با کلید اصلی.

Pull Request خوش‌آمد است! لطفاً قبل از ارسال PR، تغییرات را به‌صورت خلاصه در توضیحات بنویسید.

لایسنس (FA)

این پروژه تحت لایسنس MIT منتشر شده است. جزئیات در فایل LICENSE موجود است.


اگر این پروژه برایتان مفید بود، لطفاً ⭐️ بدهید. ممنون از حمایت شما!


Features (EN)

  • Strong password generation with customizable options (upper/lower/numbers/symbols)
  • Difficulty presets and a live strength badge
  • Beautiful modal with Save/Copy/Regenerate actions and toast notifications
  • Local history with copy/delete/clear; SHA-256 stored; optional Secure Save (AES‑GCM) where plaintext is not stored
  • Loader, lightweight particle background, RTL-friendly UI
  • PWA (service worker + manifest) and Vite-powered dev/build

Security (EN)

  • Randomness and hashing use Web Crypto API (getRandomValues, SHA-256). Optional Secure Save encrypts entries with AES‑GCM using a user-derived key (PBKDF2, SHA‑256, 150k iters). Clipboard works on HTTPS/localhost only.
  • Clipboard API requires secure context (HTTPS or localhost). A fallback copy method is included for non-secure contexts.

Getting Started (EN)

npm install
npm run dev        # start Vite dev server
npm run build      # build for production
npm run preview    # preview production build locally

Tech (EN)

  • Tailwind CSS, Vanilla JavaScript
  • Web Crypto API (SHA-256, secure randomness)
  • PWA (Service Worker, Manifest)
  • Vite (development and build)

Deploy to GitHub Pages

  1. Create repo, then push:
git init
git add .
git commit -m "feat: initial release (Tailwind + Vite + PWA)"
git branch -M main
git remote add origin <YOUR_REPO_URL>
git push -u origin main
  1. Enable Pages: GitHub → Settings → Pages → Build from branch → gh-pages or use Actions to deploy dist/.

For simple manual deploy, you can use peaceiris/actions-gh-pages in CI or run:

npm run build
git subtree push --prefix dist origin gh-pages

Contributing (EN)

  • Keep the footprint small and the UI snappy. If adding security features, include a brief threat model in your PR. Maintain accessibility and RTL support.

=======

سازنده پسورد امن – Password Generator (FA/EN)

یک اپلیکیشن سبک، مدرن و قابل‌توسعه برای ساخت رمزهای قوی با UI شیشه‌ای (Glassmorphism)، پارتیکل سبک، PWA و Web Crypto API. این پروژه با Tailwind + Vanilla JS + Vite ساخته شده است.

امکانات (FA)

  • ساخت رمز با سطوح سختی مختلف (آسان/متوسط/سخت) و گزینه‌های سفارشی (حروف بزرگ/کوچک/اعداد/نمادها)
  • نمایش رمز تولیدشده در یک مدال با عملیات: ذخیره، کپی، تولید مجدد
  • توست‌های زیبا برای بازخورد عملیات (ذخیره شد، کپی شد، حذف شد و ...)
  • تاریخچه رمزها با امکان کپی، حذف آیتم و حذف کلی
  • حالت امن (Secure Save): ذخیره‌سازی رمزها به‌صورت رمزنگاری‌شده (AES‑GCM) با «کلید اصلی» کاربر. در این حالت متن رمز ذخیره نمی‌شود و تنها با واردکردن کلید قابل نمایش/کپی است.
  • ذخیره‌سازی محلی: نگهداری هش SHA-256 هر رمز؛ در حالت عادی متن رمز نیز برای نمایش/کپی ذخیره می‌شود.
  • لودر اولیه هنگام شروع برنامه و پس‌زمینه پارتیکلی سبک
  • پس‌زمینه پارتیکلی سبک و عملکرد بالا
  • فونت فارسی جذاب Vazirmatn
  • فوتر ثابت: «توسط mmdcode محمد سجادی نوشته شده»

امنیت (FA)

  • تولید رمز با Web Crypto API (secure randomness) انجام می‌شود.
  • هش هر رمز با Web Crypto API (SHA-256) محاسبه و روی دستگاه کاربر نگهداری می‌شود.
  • «حالت امن» (اختیاری): با فعال‌کردن گزینه «ذخیره امن (AES‑GCM)» در تنظیمات پیشرفته، متن رمزها ذخیره نمی‌شود؛ فقط نسخه رمزنگاری‌شده به‌همراه IV نگهداری می‌شود. کلید اصلی توسط کاربر تعیین می‌شود و صرفاً hint آن در localStorage ذخیره می‌گردد.
  • برای Clipboard API و PWA، اجرای HTTPS/localhost ضروری است. Fallback ناامن حذف شده است.
  • برای عملکرد کامل API کلیپ‌بورد، اپ را روی HTTPS یا localhost اجرا کنید؛ در محیط ناامن، fallback برای کپی تعبیه شده است.
  • اطلاعات فقط روی دستگاه کاربر باقی می‌ماند و جایی ارسال نمی‌شود. برای امنیت بالاتر، از ذخیره رمزهای بسیار حساس خودداری کنید.

اجرا (FA)

  1. نصب وابستگی‌ها (Tailwind فقط برای بیلد CSS استفاده می‌شود):
npm install
  1. توسعه با Vite (HTTPS توصیه می‌شود):
npm run dev

Vite سرور محلی را اجرا می‌کند. برای Clipboard API کامل و SW، روی HTTPS یا localhost اجرا کنید. استایل‌ها کاملاً با Tailwind (@layer/@apply در src/input.css) تولید می‌شوند و فایل CSS سفارشی حذف شده است. فایل‌های PWA (manifest.webmanifest, sw.js) در روت پروژه قرار دارند و در بیلد در dist/ کپی می‌شوند.

  1. Build نهایی:
npm run build && npm run preview

تکنولوژی‌ها (FA)

  • Tailwind CSS
  • JavaScript (Vanilla)
  • Web Crypto API (SHA-256، اعداد تصادفی امن)
  • PWA (Service Worker, Manifest)
  • Vite (Dev/Build)

راهنمای توسعه/مشارکت (FA)

  • ساختار ساده است و وابستگی‌ها حداقلی‌اند. اگر فیچر جدید اضافه می‌کنید، تلاش کنید بدون فریم‌ورک باقی بماند، مگر اینکه ارزش افزوده مشخص باشد.
  • برای فیچرهای امنیتی (مانند ذخیره‌سازی رمزنگاری‌شده)، حتماً threat model کوتاه در PR بنویسید.
  • تلاش کنید UI/UX حداقلی، سریع و RTL را حفظ کنید. آیکن‌ها و تعاملات باید دسترس‌پذیر باشند (aria-label، کلید Esc برای بستن مدال‌ها).
  • اگر روی امنیت کار می‌کنید: threat-model کوتاه، مدیریت salt تصادفی per-user، و انتخاب تعداد iteration مناسب برای PBKDF2 را مستندسازی کنید.
  • اجرای «اجبار حداقل یک کاراکتر از هر گروه انتخاب‌شده» در تولید رمز را می‌توانید توسعه دهید (در حال حاضر معیار قدرت پوشش داده می‌شود).

حالت امن (Secure Save) – چگونه کار می‌کند؟

  1. فعال‌سازی از مسیر: تنظیمات پیشرفته → تیک «ذخیره امن (AES‑GCM)»
  2. تعیین کلید اصلی (دکمه «تنظیم کلید اصلی»): کلید با PBKDF2 (SHA‑256, 150k iters) به کلید AES‑GCM تبدیل و فقط در حافظه نگهداری می‌شود. Hint در localStorage ذخیره می‌شود.
  3. ذخیره رمز: فقط نسخه رمزنگاری‌شده ذخیره می‌شود (base64 شامل IV||Cipher).
  4. کپی از تاریخچه: ابتدا تلاش برای خواندن متن؛ اگر نبود، رمزگشایی با کلید اصلی.

Pull Request خوش‌آمد است! لطفاً قبل از ارسال PR، تغییرات را به‌صورت خلاصه در توضیحات بنویسید.

لایسنس (FA)

این پروژه تحت لایسنس MIT منتشر شده است. جزئیات در فایل LICENSE موجود است.


اگر این پروژه برایتان مفید بود، لطفاً ⭐️ بدهید. ممنون از حمایت شما!


Features (EN)

  • Strong password generation with customizable options (upper/lower/numbers/symbols)
  • Difficulty presets and a live strength badge
  • Beautiful modal with Save/Copy/Regenerate actions and toast notifications
  • Local history with copy/delete/clear; SHA-256 stored; optional Secure Save (AES‑GCM) where plaintext is not stored
  • Loader, lightweight particle background, RTL-friendly UI
  • PWA (service worker + manifest) and Vite-powered dev/build

Security (EN)

  • Randomness and hashing use Web Crypto API (getRandomValues, SHA-256). Optional Secure Save encrypts entries with AES‑GCM using a user-derived key (PBKDF2, SHA‑256, 150k iters). Clipboard works on HTTPS/localhost only.
  • Clipboard API requires secure context (HTTPS or localhost). A fallback copy method is included for non-secure contexts.

Getting Started (EN)

npm install
npm run dev        # start Vite dev server
npm run build      # build for production
npm run preview    # preview production build locally

Tech (EN)

  • Tailwind CSS, Vanilla JavaScript
  • Web Crypto API (SHA-256, secure randomness)
  • PWA (Service Worker, Manifest)
  • Vite (development and build)

Deploy to GitHub Pages

  1. Create repo, then push:
git init
git add .
git commit -m "feat: initial release (Tailwind + Vite + PWA)"
git branch -M main
git remote add origin <YOUR_REPO_URL>
git push -u origin main
  1. Enable Pages: GitHub → Settings → Pages → Build from branch → gh-pages or use Actions to deploy dist/.

For simple manual deploy, you can use peaceiris/actions-gh-pages in CI or run:

npm run build
git subtree push --prefix dist origin gh-pages

Contributing (EN)

  • Keep the footprint small and the UI snappy. If adding security features, include a brief threat model in your PR. Maintain accessibility and RTL support.

90b0267bb542127759cf6f33cd61e8b7cf9e056f

About

🔐 سازنده پسورد امن (PWA) با رابط فارسی/RTL و UI مدرن Tailwind؛ تولید رمزهای قوی با Web Crypto، انتخاب طول/کاراکترها، سطوح امنیت، نمایش قدرت، کپی سریع و تاریخچه با LocalStorage. 🚀 آفلاین و نصب‌پذیر، موبایل‌فرست، بدون بک‌اند؛ آماده دمو برای کارفرما و دیپلوی روی cPanel/GitHub Pages.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published