Skip to main content

Related Articles

How To Generate MD5 Hash Code Using C#.NET

MD5 Hash code is a unique string of characters that can be generated for a given character string. This Hash code is very important when you compare string values. It is not technically correct to compare two string directly. Good method is generate Hash code for both the strings and compare those Hash codes. Virtually it is agreed that accuracy of Hash code comparison is much higher. Not only to compare two strings, we can use Hash code to compare two files as well. There it is required to read a file as byte stream and generate Hash code for that stream. To compare that stream with second file you need generate Hash code for second file as well  using same method and compare those Hash codes. Using this method you can check whether any changes has happened to the content of the file as well as meta data of the file. So that MD5 Hash code is really important in various scenarios. Most of the programming languages are directly support for MD5 generation. Even SQL commands are available to generate Hash code directly at database level. Here I am explaining one of the methods that can be easily used.



First step is to generate MD5 Hash for any object is convert that object into a byte array. For this we take MemoryStream and BinaryFormatter objects.

MemoryStream fs = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();

Serialize() method is used to directly convert object into MemoryStream. Before this operation to be thread-safe we should lock the object.

private static readonly Object locker = new Object();

lock (locker)
{
    formatter.Serialize(fs, objectToSerialize);
}

return fs.ToArray();

Now we are ready to generate a MD5 Hash code for above serialized byte array. MD5CryptoServiceProvider is used to compute Hash for given stream of bytes. Finaly convert the each byte to Hex and appending it to the StringBuilder to build final string.

MD5 md5 = new MD5CryptoServiceProvider();

try
{
    byte[] result = md5.ComputeHash(objectAsBytes);

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < result.Lenght; i++)
    {
         sb.Append(result[i].ToString("X2"));
    }

    return sb.ToString();
}
catch (ArgumentNullException ex)
{
    // Exception Message
}

You need to include followings

using System.Security.Cryptography;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Reflection;
using System.Threading;

Now you done! This method can be used for any string or any file to compute MD5 Hash code. If you need any further clarification please list them under comments section. You can find more details here:
Illustrated C# 2008 (Windows.Net), Pro C# 2008 and the .NET 3.5 Platform, Fourth Edition (Windows.Net), C# 3.0 Design Patterns, Head First C#

Comments

  1. This comment has been removed by a blog administrator.

    ReplyDelete

Post a Comment

Popular posts from this blog

Angular PrimeNG checkboxes styling and events handling

  Getting Started With PrimeNG Styling in Angular App This chapter I am planning to show how you can handle events of the checkboxes. For that I will use checkbox for every card to place the order.  To use PrimeNG checkboxes you have to import checkbox module in app.module.ts file. import {CheckboxModule} from 'primeng/checkbox'; import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { LandingComponent } from './modules/landing/landing.component'; import { HomeComponent } from './modules/home/home.component'; import { CardModule } from 'primeng/card'; import {CheckboxModule} from 'primeng/checkbox'; @NgModule({ declarations: [ AppComponent, LandingComponent, HomeComponent ], imports: [ BrowserModule, AppRoutingModule, CardModu

The Power of ChatGPT and Whisper Models

A Deep Dive into Natural Language Processing Natural Language Processing (NLP) has seen a significant boost in recent years due to advancements in artificial intelligence and machine learning. Two models that have shown remarkable success in NLP are ChatGPT and Whisper. In this article, we will delve into the power of these models and their applications in the field of NLP. ChatGPT is a transformer-based language model developed by OpenAI that uses unsupervised learning to predict the next word in a sentence based on the context of previous words. ChatGPT is a generative model that is trained on large datasets of text, such as books and articles, and can be fine-tuned for specific tasks, such as question-answering or dialogue generation. ChatGPT is known for its ability to produce human-like text, making it an ideal tool for applications such as chatbots, content creation, and language translation. Whisper, on the other hand, is a paraphrasing model developed by Google that is based on

Getting Started With PrimeNG Styling in Angular App

  This chapter I am going to explain how you can do the styling to our flower store app. There are different kind of CSS frameworks you can use to style you app. Such as: 1.        Angular Material 2.        ngx-bootstrap 3.        NG bootstrap 4.        Prime NG   I am planning to use PrimeNG styling framework to style our flower store app. PrimeNG has more than 80 UI component and it is a collection of rich UI components for Angular. All widgets are open source and free to use under MIT License.   How to Install Prime NG 1.     Run   npm install primeng –save  inside your root folder.                    2.        Run npm install primeicons –save to install prime icons. 3.        Run npm install font-awesome --save to Install Font Awesome 4.        Run npm install @angular/cdk –save to install angular  component dev kit. Now we are done with installing Prime NG to out flower store app. If you check your package json you will see below list of libraries.