How to Encrypt and Decrypt Password in Asp.Net | Code2Night
Code2night
  • Home
  • Blogs
  • Tutorial
  • Post Blog
  • Members
    • Register
    • Login
  1. Home
  2. Blogpost
15 May
2022

How to Encrypt and Decrypt Password in Asp.Net

11202

Subscribe Youtube & Download free Pay & Download

Hello guys and welcome to Code2Night, we all need to secure our applications against unwanted user attacks, for saving privacy and maintaining application security. So for that purpose, we have to keep our passwords Encrypted in the Database. So, we will see how to Encrypt and Decrypt Passwords in Asp.Net.

Password Encryption

There are two ways of encrypting passwords in Asp.Net. Encrypting a password is simply the form of data that the user cannot understand. So we can achieve that by converting our password to a base 64 string. And then we can decrypt the base 64 string to a normal string when needed.

For converting the password to Base 64 Encrypted Password you can do the following 

 public static string EncryptPasswordBase64(string text)
 {
     var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(text);
     return System.Convert.ToBase64String(plainTextBytes);
 }

This will encrypt your string to base 64 data.

Decrypting Base 64

For decoding or decrypting the base 64 data to a normal string, we can do this

 public static string DecryptPasswordBase64(string base64EncodedData)
 {
     var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
     return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
 }

RFC Encryption

Base 64 encryption is comparatively less secure encryption as that can be decoded easily. So we have to use a more secure way of encryption passwords which is RFC algorithm cryptography. You can use RFC Encryption like this.

 public static string EncryptPassword(string clearText)
        {
            string EncryptionKey = "MAKVKKKBNI99212";
            byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(clearBytes, 0, clearBytes.Length);
                        cs.Close();
                    }
                    clearText = Convert.ToBase64String(ms.ToArray());
                }
            }
            return clearText;
        }

Decrypting RFC Encrypted Password

For decrypting the RFC Encrypted password. You can do this. We have to use the same encryption key. That we used while encrypting.

public static string DecryptPassword(string cipherText)
        {
            string EncryptionKey = "MAKVKKKBNI99212";
            byte[] cipherBytes = Convert.FromBase64String(cipherText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(cipherBytes, 0, cipherBytes.Length);
                        cs.Close();
                    }
                    cipherText = Encoding.Unicode.GetString(ms.ToArray());
                }
            }
            return cipherText;
        }

So, this is how we can encrypt any password using Base 64 and with RFC encryption. You can check the following outputEncrypt and Decrypt

public static class Encrypt
    {
        public static string EncryptPassword(string clearText)
        {
            string EncryptionKey = "MAKVKKKBNI99212";
            byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(clearBytes, 0, clearBytes.Length);
                        cs.Close();
                    }
                    clearText = Convert.ToBase64String(ms.ToArray());
                }
            }
            return clearText;
        }

        public static string DecryptPassword(string cipherText)
        {
            string EncryptionKey = "MAKVKKKBNI99212";
            byte[] cipherBytes = Convert.FromBase64String(cipherText);
            using (Aes encryptor = Aes.Create())
            {
                Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
                encryptor.Key = pdb.GetBytes(32);
                encryptor.IV = pdb.GetBytes(16);
                using (MemoryStream ms = new MemoryStream())
                {
                    using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
                    {
                        cs.Write(cipherBytes, 0, cipherBytes.Length);
                        cs.Close();
                    }
                    cipherText = Encoding.Unicode.GetString(ms.ToArray());
                }
            }
            return cipherText;
        }
        public static string EncryptPasswordBase64(string text)
        {
            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(text);
            return System.Convert.ToBase64String(plainTextBytes);
        }
        public static string DecryptPasswordBase64(string base64EncodedData)
        {
            var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
            return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
        }
    }

On the controller, we will use the class like this

 [HttpPost]
        public ActionResult Index(string Password)
        {
            ViewBag.Encrypt = Encrypt.EncryptPasswordBase64(Password);
            ViewBag.RfcEncrypt=Encrypt.EncryptPassword(Password);
            ViewBag.Password=Password;
            //For Decrypt
            //  ViewBag.Base64Decrypt = Encrypt.DecryptPasswordBase64(Password);
            // ViewBag.RfcDecrypt=Encrypt.DecryptPassword(Password);
           
            return View();
        }

For the sample code, you can download the attached code and use that. Let us know if you face any issues. This is how we can encrypt and decrypt passwords in Asp.Net MVC

  • |
  • Password Encryption , RFC Encryption , Encryption and Decryption , Encryption in AspNet , Base 64 Encryption , Base 64 Decryption

Comments

Follow Us On Social Media - Like Us On Facebook

Tags

LinkedinLogin
LinkedinProfile
GetLinkedinProfile
C#
Aspnet
MVC
Linkedin
ITextSharp
Export to Pdf
AspNet Core
AspNet
View to Pdf in Aspnet
Model Validation In ASPNET Core MVC 60
Model Validation
Model Validation In ASPNET Core MVC
Model Validation In ASPNET
Image Compression in AspNet
Compress Image in c#
AspNet MVC
Free Download for New Subscribers!

Subscribe and Click on Verify and Download for download link

Subscribe Now | 670
Download
Support Us....!

Please Subscribe to support us

Thank you for Downloading....!

Please Subscribe to support us

Continue with Downloading

Welcome To Code2night, A common place for sharing your programming knowledge,Blogs and Videos

  • Panipat
  • info@Code2night.com

Links

  • Home
  • Blogs
  • Tutorial
  • Post Blog

Popular Tags

Copyright © 2023 by Code2night. All Rights Reserved

  • Home
  • Blog
  • Login
  • SignUp
  • Contact
  • Terms & Conditions
  • Refund Policy
  • About Us
  • Privacy Policy
  • Json Beautifier