#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
C# ASCII碼排序SH256加密
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.