"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में एक पासवर्ड मैनेजर बनाना

गो में एक पासवर्ड मैनेजर बनाना

2024-11-08 को प्रकाशित
ब्राउज़ करें:758

एक सॉफ्टवेयर डेवलपर के रूप में, मैं हमेशा सुरक्षा और प्रयोज्य के अंतर्संबंध से आकर्षित रहा हूं। हाल ही में, मैंने एक रोमांचक प्रोजेक्ट शुरू करने का फैसला किया: गो का उपयोग करके एक कमांड-लाइन पासवर्ड मैनेजर बनाना। मैं इस यात्रा की शुरुआत आपके साथ साझा करना चाहता हूं, पहली प्रतिबद्धता से शुरू करते हुए।

उत्पत्ति

27 नवंबर, 2023 को, मैंने अपने प्रोजेक्ट के लिए प्रारंभिक प्रतिबद्धता बनाई, जिसे मैंने "दोस्त" नाम दिया है (हिंदी में दोस्त, पासवर्ड प्रबंधन के लिए सहायक साथी के रूप में इसकी भूमिका को दर्शाता है)। यह पहला कदम, हालांकि छोटा है, मुझे आशा है कि यह एक मजबूत और उपयोगकर्ता के अनुकूल उपकरण बन जाएगा।

प्रेरणा और दृष्टि

Building a Password Manager in Go

इस परियोजना को शुरू करते समय, मैंने लोकप्रिय कमांड-लाइन पासवर्ड मैनेजर पास से प्रेरणा ली। पास की सरलता और प्रभावशीलता ने मेरा ध्यान खींचा, और मैंने गो में अपना पासवर्ड मैनेजर बनाने के लिए ब्लूप्रिंट के रूप में इसके एपीआई का उपयोग करने का निर्णय लिया।

पास के स्रोत कोड में गोता लगाना एक आंखें खोलने वाला अनुभव था। मैं यह जानकर उत्सुक था कि इस व्यापक रूप से उपयोग किए जाने वाले टूल की संपूर्ण कार्यक्षमता एक व्यापक बैश स्क्रिप्ट में समाहित है। यह शानदार सादगी एक ऐसी चीज़ है जिसकी मैं प्रशंसा करता हूँ और आशा करता हूँ कि गो की शक्तियों का उपयोग करते हुए भी मैं इसे अपने प्रोजेक्ट में अनुकरण कर सकूंगा।

पास की पढ़ाई करके, मैंने कमांड-लाइन पासवर्ड मैनेजर की आवश्यक विशेषताओं और इसके द्वारा प्रदान किए जाने वाले उपयोगकर्ता अनुभव के बारे में बहुमूल्य अंतर्दृष्टि प्राप्त की है। जैसे-जैसे मैं "दोस्त" विकसित करना जारी रखूंगा, मैं इन पाठों को ध्यान में रखूंगा, मेरा लक्ष्य एक ऐसा टूल बनाना है जो पास की सादगी को गो के प्रदर्शन और क्रॉस-प्लेटफ़ॉर्म संगतता लाभों के साथ जोड़ता है।

इस अन्वेषण ने न केवल सुविधाओं को लागू करने के लिए एक रोडमैप प्रदान किया है, बल्कि अच्छी तरह से तैयार किए गए, केंद्रित उपकरणों की शक्ति में मेरे विश्वास को भी मजबूत किया है। मैं यह देखने के लिए उत्साहित हूं कि यह प्रेरणा विकास के आने वाले चरणों में "दोस्त" के विकास को कैसे आकार देगी।

पहली विशेषताएँ

प्रारंभिक प्रतिबद्धता दो मुख्य कार्यात्मकताओं पर केंद्रित थी:

  1. पासवर्ड जनरेशन: मैंने एक बुनियादी पासवर्ड जनरेटर लागू किया है जो उपयोगकर्ताओं को उनकी वांछित पासवर्ड लंबाई निर्दिष्ट करने की अनुमति देता है। इस सुविधा का लक्ष्य विभिन्न सुरक्षा आवश्यकताओं के अनुरूप मजबूत, यादृच्छिक पासवर्ड बनाना है।

  2. क्लिपबोर्ड एकीकरण: उपयोगकर्ता अनुभव को बढ़ाने के लिए, मैंने सुनिश्चित किया कि जेनरेट किया गया पासवर्ड स्वचालित रूप से क्लिपबोर्ड पर कॉपी हो जाए। यह छोटी लेकिन महत्वपूर्ण सुविधा समय बचाती है और प्रतिलेखन त्रुटियों के जोखिम को कम करती है।

तकनीकी अंतर्दृष्टि

आइए इस पहले पुनरावृत्ति के कुछ तकनीकी पहलुओं पर गौर करें:

  • गो संस्करण: यह परियोजना भाषा की सरलता और दक्षता का लाभ उठाते हुए गो 1.21.0 का उपयोग करके बनाई गई है।
  • बाहरी निर्भरताएं: मैं विभिन्न ऑपरेटिंग सिस्टमों में क्लिपबोर्ड संचालन को निर्बाध रूप से संभालने के लिए github.com/atotto/clipboard पैकेज का उपयोग कर रहा हूं।
  • रैंडम जेनरेशन: पासवर्ड जेनरेशन सुरक्षित रैंडम नंबर जेनरेशन के लिए गो के क्रिप्टो/रैंड पैकेज का उपयोग करता है, जो अप्रत्याशित और मजबूत पासवर्ड बनाने के लिए महत्वपूर्ण है।
  • अक्षर सेट: पासवर्ड जनरेटर में जटिलता सुनिश्चित करने के लिए अपरकेस और लोअरकेस अक्षर, अंक और विभिन्न प्रकार के विशेष वर्ण शामिल हैं।

कोड स्निपेट

आइए कार्यान्वयन के कुछ प्रमुख भागों पर नजर डालें:

  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")
}

मुख्य कार्य सब कुछ एक साथ जोड़ता है। यह उपयोगकर्ताओं को पासवर्ड की लंबाई निर्दिष्ट करने, पासवर्ड उत्पन्न करने और इसे क्लिपबोर्ड पर कॉपी करने की अनुमति देने के लिए गो के ध्वज पैकेज का उपयोग करता है।

कमांड-लाइन इंटरफ़ेस

जैसा कि आप मुख्य फ़ंक्शन में देख सकते हैं, मैंने गो के फ़्लैग पैकेज का उपयोग करके एक सरल सीएलआई लागू किया है। उपयोगकर्ता -लेंथ फ़्लैग का उपयोग करके वांछित पासवर्ड लंबाई निर्दिष्ट कर सकते हैं, यदि निर्दिष्ट नहीं है तो डिफ़ॉल्ट 12 अक्षर हैं।

आगे देख रहा

यह पहली प्रतिबद्धता तो बस शुरुआत है। जैसे-जैसे मैं इस पासवर्ड मैनेजर को विकसित करना जारी रखता हूं, मेरी योजना इस तरह की सुविधाएं जोड़ने की है:

  • पासवर्ड का सुरक्षित भंडारण
  • संग्रहीत डेटा का एन्क्रिप्शन
  • खोज और पुनर्प्राप्ति कार्यात्मकताएं
  • पासवर्ड शक्ति विश्लेषण

मैं आगे की यात्रा और उसमें आने वाली चुनौतियों को लेकर उत्साहित हूं। पासवर्ड मैनेजर बनाना केवल कोडिंग के बारे में नहीं है; यह सुरक्षा सिद्धांतों, उपयोगकर्ता की ज़रूरतों को समझने और एक ऐसा उपकरण बनाने के बारे में है जिस पर लोग अपनी संवेदनशील जानकारी के लिए भरोसा कर सकें।

इस परियोजना के विकसित होने पर अधिक अपडेट के लिए बने रहें। मैं इस दौरान अपनी प्रगति, चुनौतियाँ और सीख साझा करता रहूँगा। यदि आप अनुसरण करने या योगदान देने में रुचि रखते हैं, तो बेझिझक GitHub पर प्रोजेक्ट देखें।

Building a Password Manager in Go स्वेमाराजू / दोस्त

दोस्त कमांड लाइन पासवर्ड मैनेजर गो में लिखा है

दोस्त

dost एक CLI पासवर्ड मैनेजर है जो Go में लिखा गया है।

(पास) से प्रेरित[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

अल्प विकास

  • मैन्युअल रूप से नया पासवर्ड डालें
  • मौजूदा पासवर्ड दिखाएं
  • सभी प्रविष्टियों की सूची बनाएं
  • पासवर्ड भंडारण
  • जीपीजी कुंजी आधारित एन्क्रिप्शन

लाइसेंस

एमआईटी




GitHub पर देखें


विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/svemaraju/building-a-password-manager-in-go-31jo?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3