天天看點

c#常用函數

//得到md5

public static string GetMD5(string encypStr, string charset)

{

string retStr;

MD5CryptoServiceProvider m5 = new MD5CryptoServiceProvider();

//建立md5對象

byte[] inputBye;

byte[] outputBye;

//使用GB2312編碼方式把字元串轉化為位元組數組.

try

{

inputBye = Encoding.GetEncoding(charset).GetBytes(encypStr);

}

catch (Exception ex)

{

inputBye = Encoding.GetEncoding("GB2312").GetBytes(encypStr);

}

outputBye = m5.ComputeHash(inputBye);

retStr = System.BitConverter.ToString(outputBye);

retStr = retStr.Replace("-", "").ToUpper();

return retStr;

}

//建立package簽名

public static string CreateMd5Sign(NameValueCollection nvc, string key, string value)

{

var sb = new StringBuilder();

var akeys = new ArrayList(nvc.Keys);

akeys.Sort();

foreach (string k in akeys)

{

var v = (string)nvc[k];

if (null != v && "".CompareTo(v) != 0

&& "sign".CompareTo(k) != 0 && "key".CompareTo(k) != 0)

{

sb.Append(k + "=" + v + "&");

}

}

sb.Append(key + "=" + value);

//return sb.ToString();

string sign = GetMD5(sb.ToString(), "UTF-8").ToUpper();

return sign;

}

//得到32位随機數

public static string getNoncestr()

{

Random random = new Random();

return GetMD5(random.Next(1000).ToString(), "UTF-8");

}

//得到時間戳

public static string getTimestamp()

{

TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);

return Convert.ToInt64(ts.TotalSeconds).ToString();

}

//輸出XML

public static string parseXML(NameValueCollection nvc)

{

var sb = new StringBuilder();

sb.Append("<xml>");

var akeys = new ArrayList(nvc.Keys);

foreach (string k in akeys)

{

var v = (string)nvc[k];

if (System.Text.RegularExpressions.Regex.IsMatch(v, @"^[0-9.]$"))

{

sb.Append("<" + k + ">" + v + "</" + k + ">");

}

else

{

sb.Append("<" + k + "><![CDATA[" + v + "]]></" + k + ">");

}

}

sb.Append("</xml>");

return sb.ToString();

}

//解析xml節點值

public static string GetXmlNodeValue(System.Xml.XmlDocument xdoc,string path,string NodeName)

{

if (xdoc != null && xdoc.DocumentElement != null && xdoc.ChildNodes.Count > 0)

{

System.Xml.XmlNode XmlNode = xdoc.SelectSingleNode(path + NodeName);

if (XmlNode != null)

{

return XmlNode.InnerText;

}

else

{

return "";

}

}

else

{

return "";

}

}

public static string BuildRandomStr(int length)

{

Random rand = new Random();

int num = rand.Next();

string str = num.ToString();

if (str.Length > length)

{

str = str.Substring(0, length);

}

else if (str.Length < length)

{

int n = length - str.Length;

while (n > 0)

{

str.Insert(0, "0");

n--;

}

}

return str;

}

繼續閱讀