using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;

namespace Mammonth.Common
{
   public class SafeConfig
    {
       //public static string GetMD5(string intstr)
       //{
       //    //哈希加密
       //    //password = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1")
       //    //MD5加密    
       //    string outstr = "";
       //    MD5 md5 = MD5.Create();//实例化一个md5对像
       //    // 加密后是一个字节类型的数组，这里要注意编码UTF8/Unicode等的选择　         
       //    byte[] s = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(intstr));
       //    // 通过使用循环，将字节类型的数组转换为字符串，此字符串是常规字符格式化所得                
       //    for (int i = 0; i < s.Length; i++)
       //    {
       //        // 将得到的字符串使用十六进制类型格式。
       //        //格式后的字符是小写的字母，如果使用大写（X）则格式后的字符是大写字符
       //        outstr = outstr + s[i].ToString("X");
       //    }
       //    return outstr;
       //}

       public static string GetMD5(string msg) {
           StringBuilder sb = new StringBuilder();
           using (MD5 md5 = MD5.Create()) {
               byte[] buffer = Encoding.UTF8.GetBytes(msg);
               byte[] newB = md5.ComputeHash(buffer);
               foreach (byte item in newB) {
                   sb.Append(item.ToString("x2"));
               }
           }
           return sb.ToString().ToUpper();
       } 
    }
}
