C# – Mã Hóa Và Giải Mã Thông Tin Với Mật Khẩu | Programing Tips

Trong quá trình phát triển ứng dụng việc bảo vệ nội dung các file cấu hình là rất cần thiết, trong bài này tôi giới thiệu với các bạn một đoạn code nhỏ giúp mã hóa và giải mã có sử dụng mật khẩu để mã hóa.

Khai báo mật khẩu như sau:

string key = "2giotoitaigoccayda";

Viết hàm sau để mã hóa:

/// <summary> /// Mã hóa chuỗi có mật khẩu /// </summary> /// <param name="toEncrypt">Chuỗi cần mã hóa</param> /// <returns>Chuỗi đã mã hóa</returns> public static string Encrypt(string toEncrypt) { bool useHashing = true; byte[] keyArray; byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); if (useHashing) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)); } else keyArray = UTF8Encoding.UTF8.GetBytes(key); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); }

Hàm sau đây để phục hồi dữ liệu:

/// <summary> /// Giản mã /// </summary> /// <param name="toDecrypt">Chuỗi đã mã hóa</param> /// <returns>Chuỗi giản mã</returns> public static string Decrypt(string toDecrypt) { bool useHashing = true; byte[] keyArray; byte[] toEncryptArray = Convert.FromBase64String(toDecrypt); if (useHashing) { MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key)); } else keyArray = UTF8Encoding.UTF8.GetBytes(key); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = keyArray; tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); }

Sử dụng 2 hàm này như sau:

string chuoimahoa = Encrypt("abc"); ...... string chuoigiaima = Decrypt(chuoimahoa);

Hi vọng sẽ hữu ích với bạn.

Chia sẻ:

  • In
  • Email
  • Tweet
Thích Đang tải...

Liên quan

Từ khóa » Giải Mã Md5 C#