Sunday, December 26, 2021

WinForm Password Encryption & Decryption in Hindi

Basic idea behind Password Encryption & Decryption

उपयोगकर्ता ASCII या UNICODE टेक्स्ट इनपुट कर सकता है जो पासवर्ड टेक्स्टबॉक्स है। मान लीजिए कि उपयोगकर्ता ASCII प्रारूप में टेक्स्ट इनपुट करता है। हम पहले टेक्स्ट को बाइट ऐरे के रूप में परिवर्तित करते हैं और फिर इस बाइट ऐरे को बेस 64 एन्कोडिंग स्ट्रिंग में परिवर्तित करते हैं। जब तक निजी और सार्वजनिक कुंजी का उपयोग नहीं किया जाता है, तब तक इस बेस 64 एन्कोडेड स्ट्रिंग को आसानी से डिक्रिप्ट किया जा सकता है। हम देखते हैं कि टेक्स्ट को Base64 स्ट्रिंग में कैसे एन्क्रिप्ट किया जाता है। हम बेस 64 एन्कोडेड स्ट्रिंग को बाइट ऐरे में बदलने के लिए रिवर्स प्रक्रिया कर सकते हैं और फिर बाइट ऐरे को ASCII या UTF-8 या UNICODE स्ट्रिंग में बदल सकते हैं।

User can input ASCII or UNICODE text is password textbox. Suppose that user inputs text in ASCII form. We first convert the text as byte array and then convert this byte array into Base64 encoding string. Unless and until Private and Public keys are not used, this Base64 encoded string can be easily decrpted. We see how text is encrypted into Base64 string. We can do the reverse process to convert the Base64 encoded string into byte array and then convert the byte array into ASCII or UTF-8 or UNICODE string.

System.Text namespace  के Encoding क्लास का उपयोग करके एन्कोडिंग किया जाता है। विशिष्ट एन्कोडिंग प्रारूप प्राप्त करने के लिए इस क्लास में ASCII, UTF-8, UNICODE आदि properties हैं। फिर हम वांछित परिणाम प्राप्त करने के लिए GetBytes(), GetString() तरीकों का उपयोग कर सकते हैं। Convert क्लास का उपयोग स्ट्रिंग को बाइट्स ऐरे और इसके विपरीत में बदलने के लिए भी किया जाता है। 
 

System.Text is the namespace used to do encoding using Encoding class. This class has ASCII, UTF-8, UNICODE etc. properties to get the specific encoding format. Then we can use GetBytes(), GetString() methods to get desired result.

Convert class is used to convert string into bytes array and vice versa.

UI Design of the Password Form


The complete code to encryp and decrpt password


using System;
using System.Windows.Forms;

namespace PasswordWF
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void EncryptButton_Click(object sender, EventArgs e)
        {
            string password = PasswordTextBox.Text;
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(password);
            string b64str= Convert.ToBase64String(bytes);
            ResultLabel.Text = "Encrypted text: " + b64str;
        }

        private void DecryptButton_Click(object sender, EventArgs e)
        {
            string fulltext = ResultLabel.Text;
            string base64text =  fulltext.Substring(fulltext.IndexOf(":")+2);
            byte[] bytes = Convert.FromBase64String(base64text);
            string decrptext = System.Text.Encoding.ASCII.GetString(bytes);
            MessageBox.Show(decrptext,"Decrypted text",MessageBoxButtons.OK,MessageBoxIcon.Information);
        }
    }
}

User Input Data in the Password form


Encrpted text after clicking the Encrypt button


Decrpted text after clicking the Decrypt button


No comments:

Post a Comment

Hot Topics