गो में क्रिप्टोग्राफी: शुरुआती लोगों के लिए एन्क्रिप्शन और हैशिंग

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

गो (Golang) में क्रिप्टोग्राफी: एन्क्रिप्शन और हैशिंग

\n

गो (Golang) एक आधुनिक कंपाइल की जाने वाली भाषा है, जो अपने प्रदर्शन और क्रिप्टोग्राफ़िक एल्गोरिदम के लिए अंतर्निहित समर्थन के लिए प्रसिद्ध है। मानक लाइब्रेरी crypto डेटा सुरक्षा के लिए आवश्यक सब कुछ प्रदान करती है: सरल हैशिंग से लेकर जटिल असममित एन्क्रिप्शन तक। इस लेख में, हम मुख्य उपकरणों पर चर्चा करेंगे और व्यावहारिक कोड उदाहरण दिखाएंगे।

\n\n

गो में क्रिप्टोग्राफी की आवश्यकता क्यों है?

\n

गो में क्रिप्टोग्राफी का उपयोग इसके लिए किया जाता है:

\n
    \n
  • पासवर्ड संग्रहीत करना (हैशिंग);
  • \n
  • नेटवर्क पर डेटा स्थानांतरित करना (TLS/SSL);
  • \n
  • डिजिटल हस्ताक्षर और प्रमाणीकरण;
  • \n
  • गोपनीय फ़ाइलों का एन्क्रिप्शन।
  • \n
\n

गो एक सुविचारित API के माध्यम से सुरक्षा सुनिश्चित करता है - पुराने या असुरक्षित एल्गोरिदम का गलती से उपयोग करना कठिन है।

\n\n

गो में हैशिंग

\n

हैशिंग डेटा का एक निश्चित लंबाई की स्ट्रिंग में एकतरफा रूपांतरण है। गो में, पैकेज crypto/md5, crypto/sha1, crypto/sha256 और crypto/sha512 इसके लिए जिम्मेदार हैं।

\n\n

उदाहरण: SHA-256 हैश

\n
package main\n\nimport (\n    "crypto/sha256"\n    "fmt"\n)\n\nfunc main() {\n    data := []byte("गोपनीय डेटा")\n    hash := sha256.Sum256(data)\n    fmt.Printf("SHA256: %x\\n", hash)\n}
\n

आउटपुट: SHA256: 3c3b... (64 वर्ण)

\n\n

पासवर्ड के लिए सॉल्ट के साथ हैशिंग

\n

पासवर्ड को सुरक्षित रूप से संग्रहीत करने के लिए, सॉल्ट उत्पन्न करने के लिए crypto/rand और crypto/sha256 का उपयोग करें:

\n
package main\n\nimport (\n    "crypto/rand"\n    "crypto/sha256"\n    "fmt"\n)\n\nfunc main() {\n    password := []byte("मेरापासवर्ड123")\n    salt := make([]byte, 16)\n    rand.Read(salt)\n    \n    salted := append(salt, password...)\n    hash := sha256.Sum256(salted)\n    fmt.Printf("सॉल्ट: %x\\n", salt)\n    fmt.Printf("हैश: %x\\n", hash)\n}
\n

व्यवहार में, पासवर्ड के लिए bcrypt (पैकेज golang.org/x/crypto/bcrypt) का उपयोग करना बेहतर है, लेकिन सॉल्ट के साथ SHA-256 सीखने के लिए एक अच्छा विकल्प है।

\n\n

सममित एन्क्रिप्शन: AES

\n

AES (एडवांस्ड एन्क्रिप्शन स्टैंडर्ड) सबसे लोकप्रिय सममित एल्गोरिदम है। गो में, इसे पैकेज crypto/aes में एन्क्रिप्शन मोड (crypto/cipher) के साथ लागू किया गया है।

\n\n

उदाहरण: AES-GCM एन्क्रिप्शन

\n
package main\n\nimport (\n    "crypto/aes"\n    "crypto/cipher"\n    "crypto/rand"\n    "fmt"\n)\n\nfunc main() {\n    key := []byte("0123456789abcdef0123456789abcdef") // AES-256 के लिए 32 बाइट\n    plaintext := []byte("गोपनीय संदेश")\n    \n    block, _ := aes.NewCipher(key)\n    aead, _ := cipher.NewGCM(block)\n    \n    nonce := make([]byte, aead.NonceSize())\n    rand.Read(nonce)\n    \n    ciphertext := aead.Seal(nil, nonce, plaintext, nil)\n    fmt.Printf("एन्क्रिप्टेड: %x\\n", ciphertext)\n    \n    // डिक्रिप्शन\n    decrypted, _ := aead.Open(nil, nonce, ciphertext, nil)\n    fmt.Printf("डिक्रिप्टेड: %s\\n", decrypted)\n}
\n

GCM (गैलोइस/काउंटर मोड) गोपनीयता और प्रमाणीकरण सुनिश्चित करता है - अधिकांश कार्यों के लिए सबसे अच्छा विकल्प।

\n\n

असममित एन्क्रिप्शन: RSA

\n

RSA कुंजियों की एक जोड़ी (सार्वजनिक और निजी) का उपयोग करता है। गो में, इसे crypto/rsa और crypto/rand में लागू किया गया है।

\n\n

कुंजी उत्पादन और एन्क्रिप्शन

\n
package main\n\nimport (\n    "crypto/rand"\n    "crypto/rsa"\n    "crypto/sha256"\n    "fmt"\n)\n\nfunc main() {\n    privateKey, _ := rsa.GenerateKey(rand.Reader, 2048)\n    publicKey := &privateKey.PublicKey\n    \n    message := []byte("RSA के लिए गुप्त")\n    label := []byte("")\n    \n    // सार्वजनिक कुंजी से एन्क्रिप्शन\n    ciphertext, _ := rsa.EncryptOAEP(sha256.New(), rand.Reader, publicKey, message, label)\n    fmt.Printf("RSA से एन्क्रिप्टेड: %x\\n", ciphertext)\n    \n    // निजी कुंजी से डिक्रिप्शन\n    plaintext, _ := rsa.DecryptOAEP(sha                    

अनुशंसाएँ