"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء مدير كلمات المرور في Go

إنشاء مدير كلمات المرور في Go

تم النشر بتاريخ 2024-11-08
تصفح:810

كمطور برامج، كنت دائمًا مفتونًا بالتقاطع بين الأمان وسهولة الاستخدام. قررت مؤخرًا الشروع في مشروع مثير: إنشاء مدير كلمات مرور لسطر الأوامر باستخدام Go. أريد أن أشارككم بداية هذه الرحلة، بدءًا من الالتزام الأول.

سفر التكوين

في 27 نوفمبر 2023، قمت بالالتزام الأولي لمشروعي، والذي أطلقت عليه اسم "dost" (صديق باللغة الهندية، مما يعكس دوره كرفيق مفيد لإدارة كلمات المرور). هذه الخطوة الأولى، على الرغم من صغرها، تضع الأساس لما آمل أن يصبح أداة قوية وسهلة الاستخدام.

الإلهام والرؤية

Building a Password Manager in Go

أثناء الشروع في هذا المشروع، استوحيت الإلهام من ممر مدير كلمات المرور الشهير في سطر الأوامر. لفتت انتباهي بساطة وفعالية المرور، وقررت استخدام واجهة برمجة التطبيقات (API) الخاصة به كمخطط لبناء مدير كلمات المرور الخاص بي في Go.

كان الغوص في الكود المصدري للتمرير تجربة مدهشة. لقد أذهلني اكتشاف أن الوظائف الكاملة لهذه الأداة المستخدمة على نطاق واسع مغلفة في نص Bash شامل واحد. هذه البساطة الأنيقة هي شيء أنا معجب به وآمل أن أحاكيه في مشروعي الخاص، وإن كان ذلك باستخدام نقاط قوة Go.

من خلال دراسة المرور، اكتسبت رؤى قيمة حول الميزات الأساسية لمدير كلمات مرور سطر الأوامر وتجربة المستخدم التي ينبغي أن يوفرها. بينما أواصل تطوير "dost"، سأضع هذه الدروس في الاعتبار، بهدف إنشاء أداة تجمع بين بساطة التمرير والأداء وفوائد التوافق عبر الأنظمة الأساسية لـ Go.

لم يوفر هذا الاستكشاف خريطة طريق للميزات التي سيتم تنفيذها فحسب، بل عزز أيضًا إيماني بقوة الأدوات المركزة والمصممة جيدًا. أنا متحمس لرؤية كيف سيشكل هذا الإلهام تطور "dost" في المراحل القادمة من التطوير.

الميزات الأولى

ركز الالتزام الأولي على وظيفتين أساسيتين:

  1. إنشاء كلمة المرور : لقد قمت بتنفيذ مولد كلمات مرور أساسي يسمح للمستخدمين بتحديد طول كلمة المرور المطلوبة. تهدف هذه الميزة إلى إنشاء كلمات مرور قوية وعشوائية مصممة خصيصًا لتناسب متطلبات الأمان المختلفة.

  2. تكامل الحافظة : لتحسين تجربة المستخدم، تأكدت من نسخ كلمة المرور التي تم إنشاؤها تلقائيًا إلى الحافظة. توفر هذه الميزة الصغيرة ولكن الحاسمة الوقت وتقلل من مخاطر أخطاء النسخ.

رؤى فنية

دعونا نتعمق في بعض الجوانب الفنية لهذا التكرار الأول:

  • إصدار Go: تم إنشاء المشروع باستخدام Go 1.21.0، مع الاستفادة من بساطة اللغة وكفاءتها.
  • التبعيات الخارجية: أنا أستخدم حزمة github.com/atotto/clipboard للتعامل مع عمليات الحافظة عبر أنظمة التشغيل المختلفة بسلاسة.
  • الإنشاء العشوائي: يستخدم إنشاء كلمات المرور حزمة التشفير/الراند الخاصة بـ Go لإنشاء أرقام عشوائية آمنة، وهو أمر ضروري لإنشاء كلمات مرور قوية وغير متوقعة.
  • مجموعة الأحرف: يتضمن منشئ كلمة المرور أحرفًا كبيرة وصغيرة وأرقامًا ومجموعة متنوعة من الأحرف الخاصة لضمان التعقيد.

مقتطفات التعليمات البرمجية

دعونا نلقي نظرة على بعض الأجزاء الرئيسية للتنفيذ:

  1. وظيفة إنشاء كلمة المرور:
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 


تقوم هذه الوظيفة بإنشاء كلمة مرور عن طريق اختيار أحرف عشوائيًا من مجموعة محددة مسبقًا، مما يضمن مزيجًا من الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة.

  1. تكامل الحافظة:
func writeToClipboard(text string) error {
    return clipboard.WriteAll(text)
}

تستخدم هذه الوظيفة البسيطة حزمة الحافظة لكتابة كلمة المرور التي تم إنشاؤها إلى حافظة النظام.

  1. الوظيفة الرئيسية:
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.

Building a Password Manager in Go svemaraju / دوست

dost مدير كلمات مرور سطر الأوامر المكتوب بلغة Go

دوست

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

تحت التطوير

  • أدخل كلمة المرور الجديدة يدويًا
  • إظهار كلمة المرور الموجودة
  • قائمة بجميع الإدخالات
  • تخزين كلمة المرور
  • التشفير المعتمد على مفتاح GPG

رخصة

معهد ماساتشوستس للتكنولوجيا




عرض على جيثب


بيان الافراج تم نشر هذه المقالة على: https://dev.to/svemaraju/building-a-password-manager-in-go-31jo?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3