Thursday, December 4, 2025

RSA Encryption and Decryption using Private and Public Key, client and server side

RSA Encryption and Decryption using Private and Public Key, client and server side

Here i used two approach 

1. Server Side Encryption (using Public Key) and Server Side Decryption (using Private Key)


using System;
using System.Security.Cryptography;
using System.Text;

public partial class RSA_RSAEncDec : System.Web.UI.Page
{
    string publicKey = "";
    string privateKey = "";


    /*
     * Very Use full Site to develop this functionality
    //https://raskeyconverter.azurewebsites.net/XmlToPem?handler=ConvertPEM
    // For Encryption we user Private key PEM like below sample public key format i.e.  
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhki....
-----END PUBLIC KEY-----

    For Decryption we required XMl file hence generate using the PEM and result like this..
    xpuS70fWBZv.....AQAB

+m+08g5NTiFXrh5f0...

ywUa2jNho8BFlQobo.....59OegfABWdD9tH4Dn7....B1t1AKlSBYQnQ....v4iZ7IpuX4yc....YC5TWCHX2duUR0a.....
*/ protected void Page_Load(object sender, EventArgs e) { string PreFix = @"C:\Users\murdhusi\Downloads\Biometric (2)\Biometric\Murli\"; publicKey = System.IO.File.ReadAllText(PreFix + @"RSApublicKeyM.txt"); privateKey = System.IO.File.ReadAllText(PreFix + @"RSAprivateKeyM.txt"); } protected void btnEncrypt_Click(object sender, EventArgs e) { txtencrypt.Text = GenerateKeyAndEncrypt(); } protected void btnDecrypt_Click(object sender, EventArgs e) { txtdecrypt.Text = GetKeyandDecrypt(Convert.FromBase64String(txtencrypt.Text)); } #region For Encryption private string GenerateKeyAndEncrypt() { // Generate RSA key pair using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { // Convert the data to bytes string data = txtplain.Text;// "Hello, RSA! MURLi"; //lblMessage.Text += ("
Orignal data: " + data); byte[] dataBytes = Encoding.UTF8.GetBytes(data); // Encrypt the data using the public key byte[] encryptedData = EncryptData(dataBytes, publicKey); string encData = Convert.ToBase64String(encryptedData); // Store or transmit the encrypted data //lblMessage.Text += ("
Encrypted data: " + encData); return encData; } } static byte[] EncryptData(byte[] dataBytes, string publicKey) { //if (true) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { // Import the recipient's public key rsa.FromXmlString(publicKey); // Encrypt the data using the public key byte[] encryptedData = rsa.Encrypt(dataBytes, true); return encryptedData; } } } #endregion #region For Decryption private string GetKeyandDecrypt(byte[] encData) { string originalData = ""; string privateKeyXml = ""; // Retrieve the encrypted data byte[] encryptedData = null; // Get the encrypted data privateKeyXml = privateKey; encryptedData = encData; // Create an instance of RSACryptoServiceProvider using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { // Import the private key rsa.FromXmlString(privateKeyXml); // Decrypt the data using the private key byte[] decryptedData = rsa.Decrypt(encryptedData, true); // Convert the decrypted data back to its original form originalData = Encoding.UTF8.GetString(decryptedData); // Display the decrypted data //lblMessage.Text += ("
Decrypted data: " + originalData); } return originalData; } #endregion }

2. Client Side Encryption (using Public Key) and Server Side Decryption (using Private Key)

<script src="https://cdn.jsdelivr.net/npm/jsencrypt@latest/bin/jsencrypt.min.js"></script>

    <script src="js/jsencrypt.min.js"></script>


<!--Your custom script that uses JSEncrypt-->

<script type="text/javascript">

    // Define the encryption function with a single parameter (the data to be encrypted).

    function encrypt(data) {

        //debugger;

        var encrypt = new JSEncrypt(); // Create a new instance of the JSEncrypt library.


        public_key = `-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w.....

-----END PUBLIC KEY-----`;

        

        encrypt.setPublicKey(public_key); // Set the public key for the encryption library.

        var encrypted = encrypt.encrypt(data); // Use the encrypt method of the library to encrypt the data.


        //console.log("encrypted Text: ", encrypted);

        return encrypted; // Return the encrypted data.

    }


let encData = encrypt("Text for encryption");

</script>


Download Sample Code from here 

Friday, October 31, 2025

Prototype Pollution Fixes


Follow below step to fix the prototype pollution fix. To Fix this issue include below shared JS file next to jQuery Library.

Prototype Pollution Fix

FYI Below image

Tuesday, July 22, 2025

Some Git Command

git init

git clone https://murlidIndigo@bitbucket.org/indigoconsultingpublicis/hdfc_dcemi_file_extract_order_service.git

git status

git add .         [Add all files]

git commit -m "Commit Message"  [For Commit the files]

git push  [Push changes on repository]

git switch UAT [Change branch]

git fetch [Get Files from Repository of all branches]

git rm -r --cached [Remove caching]

Thursday, April 10, 2025

Read XMl File data With namespace and without namespace

 

Suppose xml files is avaialble like this with namespace

<?xml version="1.0" encoding="UTF-8"?> <Document xmlns="http://abcd.org/onmags/schema"> <AuthReq> <MyData> Hi How are you </MyData> </AuthReq> </Document>

.Net Sample Code looks like this

#region With Namespace XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("/Sample/request.xml")); var nms = new XmlNamespaceManager(doc.NameTable); nms.AddNamespace("nm", "http://abcd.org/onmags/schema"); XmlNode node = doc.DocumentElement.SelectSingleNode("/nm:Document/nm:AuthReq", nms); //XmlNode node = doc.DocumentElement.SelectSingleNode("/Document/AuthReq"); string request = node.InnerText.ToString(); #endregion =================================================================

Suppose xml files is avaialble like this without namespace

<?xml version="1.0" encoding="UTF-8"?> <Document> <AuthReq> <MyData> Hi How are you </MyData> </AuthReq> </Document>

.Net Sample Code looks like this

#region With Namespace XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("/Sample/request.xml")); XmlNode node = doc.DocumentElement.SelectSingleNode("/Document/AuthReq"); string request = node.InnerText.ToString(); #endregion

Monday, March 3, 2025

Get Validation Error Message, Page.Isvaild False Section

if you wanted to know the route cause of error message then we can write below code in aso.net 

 foreach (BaseValidator validator in Page.Validators)

            {

                if (validator.Enabled && !validator.IsValid)

                {

                    // Put a breakpoint here

                    string clientID = validator.ClientID;

                    string aa = validator.ErrorMessage;

                }

            }

Monday, February 24, 2025

Session Kill on Page Refresh OR On Page/Browser refresh session kill in asp.net with c#

Create a Global Variable

bool IsPageRefresh = false;

Write Below Code on Page Load

  #region To Maintain Refresh event
  //Section of code checks if the page postback is due to genuine submit by user 
  //or by pressing "refresh" or F5
  if (!IsPostBack)
  {
       //Session.Abandon(); Session.Clear();
       ViewState["ViewStateId"] = System.Guid.NewGuid().ToString();
       Session["SessionId"] = ViewState["ViewStateId"].ToString();
  }
  else
  {
      if (ViewState["ViewStateId"] != null && Session["SessionId"] != null)
        {
          if (ViewState["ViewStateId"].ToString() != Session["SessionId"].ToString())
            {
               IsPageRefresh = true;
            }
        }

        Session["SessionId"] = System.Guid.NewGuid().ToString();
        ViewState["ViewStateId"] = Session["SessionId"].ToString();
    } 
    #endregion 

Check Global variable where you made the condition like on events

    #region To Maintain Refresh event
     if (IsPageRefresh)
        {
          Session.Abandon(); Session.Clear();
        }
    #endregion

    if (Session["MyFlag"] == null) Response.Redirect("invalid.aspx?msg=Session expired. ", true);

Friday, December 13, 2024

SecurityProtocol Setting in .Net, SSL/TLS Error Fixes

 #region SecurityProtocol Setting

                try

                { //try TLS 1.3

                    ServicePointManager.SecurityProtocol = (SecurityProtocolType)12288

                                                         | (SecurityProtocolType)3072

                                                         | (SecurityProtocolType)768

                                                         | SecurityProtocolType.Tls;

                }

                catch (NotSupportedException)

                {

                    try

                    { //try TLS 1.2

                        ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072

                                                             | (SecurityProtocolType)768

                                                             | SecurityProtocolType.Tls;

                    }

                    catch (NotSupportedException)

                    {

                        try

                        { //try TLS 1.1

                            ServicePointManager.SecurityProtocol = (SecurityProtocolType)768

                                                                 | SecurityProtocolType.Tls;

                        }

                        catch (NotSupportedException)

                        { //TLS 1.0

                            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

                        }

                    }

                }

                #endregion