كمطور برامج، كنت دائمًا مفتونًا بالتقاطع بين الأمان وسهولة الاستخدام. قررت مؤخرًا الشروع في مشروع مثير: إنشاء مدير كلمات مرور لسطر الأوامر باستخدام Go. أريد أن أشارككم بداية هذه الرحلة، بدءًا من الالتزام الأول.
في 27 نوفمبر 2023، قمت بالالتزام الأولي لمشروعي، والذي أطلقت عليه اسم "dost" (صديق باللغة الهندية، مما يعكس دوره كرفيق مفيد لإدارة كلمات المرور). هذه الخطوة الأولى، على الرغم من صغرها، تضع الأساس لما آمل أن يصبح أداة قوية وسهلة الاستخدام.
أثناء الشروع في هذا المشروع، استوحيت الإلهام من ممر مدير كلمات المرور الشهير في سطر الأوامر. لفتت انتباهي بساطة وفعالية المرور، وقررت استخدام واجهة برمجة التطبيقات (API) الخاصة به كمخطط لبناء مدير كلمات المرور الخاص بي في Go.
كان الغوص في الكود المصدري للتمرير تجربة مدهشة. لقد أذهلني اكتشاف أن الوظائف الكاملة لهذه الأداة المستخدمة على نطاق واسع مغلفة في نص Bash شامل واحد. هذه البساطة الأنيقة هي شيء أنا معجب به وآمل أن أحاكيه في مشروعي الخاص، وإن كان ذلك باستخدام نقاط قوة Go.
من خلال دراسة المرور، اكتسبت رؤى قيمة حول الميزات الأساسية لمدير كلمات مرور سطر الأوامر وتجربة المستخدم التي ينبغي أن يوفرها. بينما أواصل تطوير "dost"، سأضع هذه الدروس في الاعتبار، بهدف إنشاء أداة تجمع بين بساطة التمرير والأداء وفوائد التوافق عبر الأنظمة الأساسية لـ Go.
لم يوفر هذا الاستكشاف خريطة طريق للميزات التي سيتم تنفيذها فحسب، بل عزز أيضًا إيماني بقوة الأدوات المركزة والمصممة جيدًا. أنا متحمس لرؤية كيف سيشكل هذا الإلهام تطور "dost" في المراحل القادمة من التطوير.
ركز الالتزام الأولي على وظيفتين أساسيتين:
إنشاء كلمة المرور : لقد قمت بتنفيذ مولد كلمات مرور أساسي يسمح للمستخدمين بتحديد طول كلمة المرور المطلوبة. تهدف هذه الميزة إلى إنشاء كلمات مرور قوية وعشوائية مصممة خصيصًا لتناسب متطلبات الأمان المختلفة.
تكامل الحافظة : لتحسين تجربة المستخدم، تأكدت من نسخ كلمة المرور التي تم إنشاؤها تلقائيًا إلى الحافظة. توفر هذه الميزة الصغيرة ولكن الحاسمة الوقت وتقلل من مخاطر أخطاء النسخ.
دعونا نتعمق في بعض الجوانب الفنية لهذا التكرار الأول:
دعونا نلقي نظرة على بعض الأجزاء الرئيسية للتنفيذ:
func generatePassword(length int) (string, error) { const ( uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" lowercaseLetters = "abcdefghijklmnopqrstuvwxyz" digits = "0123456789" specialChars = "!@#$%^&*()-_= []{}|;:'\",./?" ) allChars := uppercaseLetters lowercaseLetters digits specialChars var password string for i := 0; iتقوم هذه الوظيفة بإنشاء كلمة مرور عن طريق اختيار أحرف عشوائيًا من مجموعة محددة مسبقًا، مما يضمن مزيجًا من الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة.
- تكامل الحافظة:
func writeToClipboard(text string) error { return clipboard.WriteAll(text) }تستخدم هذه الوظيفة البسيطة حزمة الحافظة لكتابة كلمة المرور التي تم إنشاؤها إلى حافظة النظام.
- الوظيفة الرئيسية:
func main() { passwordLength := flag.Int("length", 12, "length of your password") flag.Parse() password, err1 := generatePassword(*passwordLength) if err1 != nil { fmt.Println("Error generating password:", err1) return } fmt.Println("Generated Password:", password) err2 := writeToClipboard(password) if err2 != nil { fmt.Println("Error writing to clipboard:", err2) os.Exit(1) } fmt.Println("Copied to clipboard! ✅\n") }الوظيفة الرئيسية تربط كل شيء معًا. يستخدم حزمة علم Go للسماح للمستخدمين بتحديد طول كلمة المرور وإنشاء كلمة المرور ونسخها إلى الحافظة.
واجهة سطر الأوامر
كما ترون في الوظيفة الرئيسية، لقد قمت بتنفيذ واجهة سطر أوامر (CLI) بسيطة باستخدام حزمة علم Go. يمكن للمستخدمين تحديد طول كلمة المرور المطلوبة باستخدام علامة -length، مع الافتراضي 12 حرفًا إذا لم يتم تحديدها.
التطلع إلى الأمام
هذا الالتزام الأول هو مجرد البداية. بينما أواصل تطوير مدير كلمات المرور هذا، أخطط لإضافة ميزات مثل:
أنا متحمس للرحلة المقبلة والتحديات التي ستجلبها. لا يقتصر إنشاء مدير كلمات المرور على البرمجة فحسب؛ يتعلق الأمر بفهم مبادئ الأمان، واحتياجات المستخدم، وإنشاء أداة يمكن للأشخاص الوثوق بها فيما يتعلق بمعلوماتهم الحساسة.
ترقبوا المزيد من التحديثات مع تطور هذا المشروع. سأشارك تقدمي وتحدياتي وتعلمي على طول الطريق. إذا كنت مهتمًا بالمتابعة أو المساهمة، فلا تتردد في الاطلاع على المشروع على GitHub.
dost هو مدير كلمات مرور CLI مكتوب بلغة Go.
مستوحاة من (Pass)[https://www.passwordstore.org/]
> go build -o dost main.go
إنشاء كلمة المرور:
> ./dost generate email/[email protected] Generated Password: );XE,7-Dv?)Aa &
إنشاء كلمة مرور ذات طول محدد (الافتراضي هو 25):
> ./dost generate email/[email protected] 12 Generated Password: si
نسخ كلمة المرور التي تم إنشاؤها إلى الحافظة دون الطباعة:
> ./dost generate -c email/[email protected] Copied to clipboard! ✅
تجنب الرموز عند إنشاء كلمات المرور:
> ./dost generate -n email/[email protected] Generated Password: E2UST}^{Ac[Fb&D|cD%;Eij>H
معهد ماساتشوستس للتكنولوجيا
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3