#region 1.参数按照ASCII码从小到大排序
/// <summary>
/// 参数按照ASCII码从小到大排序(字典序)
/// </summary>
/// <param name="paramsMap">参数</param>
/// <returns></returns>
public static string GetParamSrc(Dictionary<string, string> paramsMap)
{
string resultStr = string.Empty;
//对参数进行排序处理
var param = paramsMap.OrderBy(x => x.Key, new ComparerString()).ToDictionary(x => x.Key, y => y.Value);
if (param != null)
{
StringBuilder strParams = new StringBuilder();
foreach (var kv in param)
{
var pvalue = kv.Value;
var pkay = kv.Key;
//if (string.IsNullOrEmpty(pvalue) || string.IsNullOrEmpty(pkay)) continue;
strParams.Append(string.Format("{0}{1}{2}{3}", pkay, "=", pvalue, "&"));
}
resultStr = strParams.Remove(strParams.Length - 1, 1).ToString();
}
return resultStr;
}
#region 对比
/// <summary>
/// 对比
/// </summary>
public class ComparerString : IComparer<String>
{
public int Compare(String x, String y)
{
return string.CompareOrdinal(x, y);
}
}
#endregion
#endregion
#region 2.SH256加密
/// <summary>
/// SH256加密
/// </summary>
/// <param name="toEncrypt"></param>
/// <returns></returns>
public static string GetSHA256HashFromString(string toEncrypt)
{
byte[] bytValue = Encoding.UTF8.GetBytes(toEncrypt);
SHA256 sha256 = new SHA256CryptoServiceProvider();
byte[] retVal = sha256.ComputeHash(bytValue);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
#endregion