加密算法MD5
Posted weiweixiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密算法MD5相关的知识,希望对你有一定的参考价值。
这里不讲原理,只有实现的简单封装
/// <summary> /// MD5加密类 /// </summary> public class Md5Helper { /// <summary> /// MD5加密 /// 加权:无 /// 位数:32位 /// </summary> /// <param name="plaintext">明文</param> /// <returns>返回32位的密文</returns> public static string Encrypt(string plaintext) { return Encrypt(plaintext, true, null); } /// <summary> /// MD5加密 /// 加权:有 /// 位数:32位 /// </summary> /// <param name="plaintext">明文</param> /// <param name="salt">随机字符串</param> /// <returns>返回32位的密文</returns> public static string Encrypt(string plaintext, string salt) { return Encrypt(plaintext, true, salt); } /// <summary> /// MD5加密 /// 加权:无 /// 位数:32位或16位 /// </summary> /// <param name="plaintext">明文</param> /// <param name="isThirtyTwo">是 返回32位,否返回16位</param> /// <returns></returns> public static string Encrypt(string plaintext, bool isThirtyTwo) { return Encrypt(plaintext, isThirtyTwo, null); } /// <summary> /// MD5加密 /// 加权:有 /// 位数:32位或16位 /// </summary> /// <param name="plaintext"></param> /// <param name="isThirtyTwo"></param> /// <param name="salt"></param> /// <returns></returns> public static string Encrypt(string plaintext, bool isThirtyTwo, string salt) { if (String.IsNullOrEmpty(plaintext)) { throw new ArgumentNullException("明文不能为空"); } if (!String.IsNullOrEmpty(salt)) { plaintext = plaintext + salt; } MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bytResult = md5.ComputeHash(Encoding.UTF8.GetBytes(plaintext)); md5.Clear(); string result = String.Empty; if (isThirtyTwo) { result = BitConverter.ToString(bytResult); } else { result = BitConverter.ToString(bytResult, 4, 8); } return result.Replace("-", ""); } }
以上是关于加密算法MD5的主要内容,如果未能解决你的问题,请参考以下文章