Aadhaar (UDID) Number Validation Using C#

This article describes how to validate a UDID number (similar to the Social Security Number in the US) using C# in a client-side C# application. We can validate the Aadhaar number using a Verhoeff algorithm before sending it to the server.

First design a Windows Form.

Aadhaar Number Validation Using C# 

Back-end Code

  1. private void textBox1_TextChanged(object sender, EventArgs e)  
  2.         {  
  3.             if (textBox1.Text.Length == 4)  
  4.             textBox2.Focus();  
  5.         }  
  6.         private void textBox2_TextChanged(object sender, EventArgs e)  
  7.         {  
  8.             if (textBox2.Text.Length == 4)  
  9.                 textBox3.Focus();  
  10.             if (textBox2.Text.Length == 0)  
  11.                 textBox1.Focus();  
  12.         }  
  13.         private void textBox3_TextChanged(object sender, EventArgs e)  
  14.         {  
  15.             if (textBox3.Text.Length == 0)  
  16.                 textBox2.Focus();  
  17.         }  
  18.         private void button1_Click(object sender, EventArgs e)  
  19.         {  
  20.             string sAdhaar = textBox1.Text + textBox2.Text + textBox3.Text;  
  21.             if (sAdhaar.Length == 12)  
  22.             {  
  23.   
  24.                 bool isValidnumber = aadharcard.validateVerhoeff(sAdhaar);  
  25.                 if (isValidnumber)  
  26.                 {  
  27.                     label2.ForeColor = Color.Green;  
  28.                     label2.Text = "Aadhaar Validation Success";  
  29.                 }  
  30.                 else  
  31.                 {  
  32.                     label2.ForeColor = Color.Red;  
  33.                     label2.Text = "Invalid Aadhaar Number";  
  34.                 }  
  35.             }  
  36.             else  
  37.             {  
  38.                 label2.Text = "Enter Adhaar Number";  
  39.                 label2.ForeColor = Color.Red;  
  40.             }  
  41.   
  42.         }  

Create a new class file with the name aadharcard.cs.

  1. public class aadharcard  
  2.   {  
  3.       static int[,] d = new int[,]  
  4.     
  5.   {   
  6.   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},   
  7.   {1, 2, 3, 4, 0, 6, 7, 8, 9, 5},  
  8.   {2, 3, 4, 0, 1, 7, 8, 9, 5, 6},   
  9.   {3, 4, 0, 1, 2, 8, 9, 5, 6, 7},  
  10.   {4, 0, 1, 2, 3, 9, 5, 6, 7, 8},  
  11.   {5, 9, 8, 7, 6, 0, 4, 3, 2, 1},   
  12.   {6, 5, 9, 8, 7, 1, 0, 4, 3, 2},   
  13.   {7, 6, 5, 9, 8, 2, 1, 0, 4, 3},   
  14.   {8, 7, 6, 5, 9, 3, 2, 1, 0, 4},   
  15.   {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}   
  16.   };  
  17.       static int[,] p = new int[,]   
  18.        {  
  19.        {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},  
  20.        {1, 5, 7, 6, 2, 8, 3, 0, 9, 4},  
  21.        {5, 8, 0, 3, 7, 9, 6, 1, 4, 2},  
  22.        {8, 9, 1, 6, 0, 4, 3, 5, 2, 7},  
  23.        {9, 4, 5, 3, 1, 2, 6, 8, 7, 0},  
  24.        {4, 2, 8, 6, 5, 7, 3, 9, 0, 1},   
  25.        {2, 7, 9, 3, 8, 0, 6, 4, 1, 5},   
  26.        {7, 0, 4, 6, 9, 1, 3, 2, 5, 8}  
  27.        };  
  28.   
  29.       static int[] inv = { 0, 4, 3, 2, 1, 5, 6, 7, 8, 9 };  
  30.   
  31.       public static bool validateVerhoeff(string num)  
  32.       {  
  33.           int c = 0; int[] myArray = StringToReversedIntArray(num);  
  34.           for (int i = 0; i < myArray.Length; i++)  
  35.           {  
  36.               c = d[c, p[(i % 8), myArray[i]]];  
  37.           } return c == 0;  
  38.   
  39.       }  
  40.       private static int[] StringToReversedIntArray(string num)  
  41.       {  
  42.           int[] myArray = new int[num.Length];  
  43.           for (int i = 0; i < num.Length; i++)  
  44.           {  
  45.               myArray[i] = int.Parse(num.Substring(i, 1));  
  46.           }  
  47.           Array.Reverse(myArray); return myArray;  
  48.       }  
  49.   } 

Result

Invalid Aadhaar Number -

Aadhaar Number Validation Using C# 

Valid Aadhaar Number -

Aadhaar Number Validation Using C#