
أداة سطر أوامر بسيطة وآمنة لإدارة رموز المصادقة ثنائية العوامل المستندة إلى TOTP.

Authy / Google Authenticator لسطر الأوامر.
Hotpot هي أداة سطر أوامر بسيطة وآمنة لإدارة رموز المصادقة الثنائية المستندة إلى TOTP. تقوم Hotpot بتخزين أسرار المصادقة الثنائية الخاصة بك بشكل آمن في سلسلة المفاتيح الخاصة بالنظام، وتقوم بإنشاء كلمات مرور لمرة واحدة تعتمد على الوقت عندما تحتاج إليها.
مبنية بلغة Rust لتحقيق الأمان والأداء والموثوقية.
قم باستنساخ هذا المستودع، ثم قم بتشغيل
cargo install --path . --locked
hotpot add <account-name>
سيُطلب منك إدخال السر Base32 بأمان.
مثال:
hotpot add github
Enter the Base32 secret: ********
hotpot --load-image /path/to/qr-code.png
أو استخدم التقاط لقطة الشاشة التفاعلي في لوحة التحكم بالضغط على [A] ثم [S].
قم بتشغيل hotpot لفتح لوحة التحكم التفاعلية حيث يمكنك:
تحديث اللوحة تلقائياً كل 250 مللي ثانية وتتعامل مع تغيير حجم الطرفية بسلاسة.
hotpot code <account-name>
مثال:
hotpot code github
hotpot delete <account-name>
يمكنك تصدير رمز QR لحساب إما من خلال لوحة التحكم (اضغط [E]) أو باستخدام الأمر:
hotpot export-qr --name <account-name>
سيؤدي ذلك إلى عرض رمز QR في الطرفية يمكن مسحه ضوئياً بواسطة تطبيقات المصادقة.
للتكوينات المحمولة أو عندما يكون الوصول إلى سلسلة المفاتيح غير متاح، يمكنك استخدام العلم --file لتخزين الحسابات في ملف JSON بدلاً من سلسلة المفاتيح الآمنة.
# Interactive dashboard with file storage
hotpot --file ~/.config/hotpot/accounts.json
# Add account to file
hotpot --file ./my-accounts.json add work-account
# Generate code from file-stored account
hotpot --file ./my-accounts.json code work-account
# Delete account from file
hotpot --file ./my-accounts.json delete work-account
حالات استخدام التخزين المدعوم بملف:
ملاحظة أمان: التخزين المدعوم بملف يخزن الأسرار في نص عادي JSON. تأكد من تعيين الصلاحيات المناسبة للملف (600) وفكر في تشفير الملف للبيئات الحساسة.
التخزين الآمن الافتراضي: تقوم Hotpot بتخزين جميع الأسرار بأمان في سلسلة المفاتيح الخاصة بنظامك:
التخزين المدعوم بملف: عند استخدام العلم --file، يتم تخزين الحسابات في ملف JSON في المسار المحدد. يتم إنشاء الملف بالصلاحيات المناسبة (600) ويتم إنشاء الدلائل تلقائياً إذا لزم الأمر. هذا الوضع مفيد للتكوينات المحمولة أو عندما يكون الوصول إلى سلسلة المفاتيح غير متاح.
cargo build --release
سيكون الملف الثنائي متاحاً في target/release/hotpot
يشمل المشروع اختبارات وحدة شاملة تغطي الوظائف الأساسية:
cargo test
تغطية الاختبارات تشمل:
# Run in development mode
cargo run
# Run with specific arguments
cargo run -- add github
# Test with file storage
cargo run -- --file test-accounts.json add test-account
# Check code quality
cargo clippy
# Quick compile check
cargo check
Hotpot مبنية بهندسة معيارية تركز على الأمان وقابلية الصيانة:
main.rs: واجهة سطر الأوامر وإدارة التخزينtotp.rs: تطبيق خوارزمية TOTP (RFC 6238) مع تغطية اختبارية شاملةdashboard.rs: واجهة طرفية تفاعلية مع تحديثات في الوقت الفعلي واختبارات وحدة موسعةlib.rs: معالجة الأخطاء المشتركة والأدوات المساعدةkeyring, base32, hmac, sha1/sha2clap, crossterm, rpasswordfuzzy-matcher, qrcode, arboardserde, serde_json, url, urlencodingimage, (اكتشاف رموز QR)MIT License
المساهمات مرحب بها! لا تتردد في تقديم طلب سحب (Pull Request).
يحافظ المشروع على معايير عالية لجودة الكود:
cargo test)cargo clippy)rqrr