Lập trình C# – Mã hóa MD5 và SHA1

Rate this post

Trong vấn đề bảo mật thì việc mã hóa là chính là trọng tâm. Kỹ thuật mã hóa liên tục được thay đổi để nhằm ngăn cản sự can thiệp không chính thức. Mã hóa một chiều chính là cách thức dùng để mã hóa mật khẩu. MD5 và SHA1 là hai thuật toán mã hóa một chiều phổ biến nhất.

Trong ngôn ngữ C# việc mã hóa mật khẩu khá dễ dàng vì đã có hỗ trợ các class xử lý việc mã hóa MD5 và SHA1. Đoạn code bên dưới mình viết thành dạng 1 class để dễ sử dụng hơn.

MD5
using System.Security.Cryptography;

public class MD5Hash
{
  public static string Hash(string text)
  {
    MD5 md5 = MD5.Create();
    byte[] hash = md5.ComputeHash(Encoding.UTF8.GetBytes(text));
    StringBuilder hashSb = new StringBuilder();
    foreach(byte b in hash)
    {
      hashSb.Append(b.ToString("X2"));
    }
    return hashSb.ToString();
  }
}
SHA1
using System.Security.Cryptography;

public class SHA1Hash
{
  public static string Hash(string text)
  {
    SHA1Managed sha1 = new SHA1Managed();
    byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(text));
    StringBuilder hashSb = new StringBuilder();
    foreach(byte b in hash)
    {
      hashSb.Append(b.ToString("X2"));
    }
    return hashSb.ToString();
  }
}

Hits: 84

Leave a Reply