2019年8月19日 星期一

MD5 C#

c# net 使用MD5.Create和MD5CryptoServiceProvider有什麼區別?



https://www.cnblogs.com/healer007/p/5062189.html


=======================================================================

  public static class Md5
    {
        /// <summary>
        /// 將content轉成Md5
        /// </summary>
        /// <param name="content">輸入的內容</param>
        /// <returns>Md5的結果</returns>
        public static string getMD5String(this string content)
        {
            var sb = new StringBuilder();
            try
            {
                var md5 = new MD5CryptoServiceProvider();
                // 加密後是一個字節類型的數組,這裡要注意編碼UTF8/Unicode等的選擇 
                byte[] bytValue = Encoding.UTF8.GetBytes(content);
                byte[] bytHash = md5.ComputeHash(bytValue);
                md5.Clear();
                // 通過使用循環,將字節類型的數組轉換為字符串,此字符串是常規字符格式化所得
                for (int i = 0; i < bytHash.Length; i++)
                {
                    // 將得到的字符串使用十六進制類型格式。格式後的字符是小寫的字母,如果使用大寫(X)則格式後的字符是大寫字符
                    sb.Append(bytHash[i].ToString("X").PadLeft(2, '0'));
                }
            }
            catch (Exception ex)
            {
               // Log.writeLogToFile(Log.LogFileType.ErrorMessage, "Md5.getMD5String(): " + ex.GetBaseException() + "," + ex.Message);
            }
            return sb.ToString();
        }

    }

沒有留言:

張貼留言