SHA简介:
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)
原理:
SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。类似MD5加密
C#中进行Sha1加密字符串返回加密字符串
public class SHA1Helper
{
#region 获取由SHA1加密的字符串
public static string EncryptToSHA1(string str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] str1 = Encoding.UTF8.GetBytes(str);
byte[] str2 = sha1.ComputeHash(str1);
sha1.Clear();
(sha1 as IDisposable).Dispose();
return Convert.ToBase64String(str2);
}
#endregion
#region 获取由MD5加密的字符串
public static string EncryptToMD5(string str)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] str1 = Encoding.UTF8.GetBytes(str);
byte[] str2 = md5.ComputeHash(str1, 0, str1.Length);
md5.Clear();
(md5 as IDisposable).Dispose();
return Convert.ToBase64String(str2);
}
#endregion
#region [ 生成hmacsha1的散列 ]
public static string HmacSha1(string word)
{
return BitConverter.ToString(SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(word))).Replace("-", string.Empty);
}
#endregion
#region [ 字符串的字典序排序,区分大小写 ]
public static string GetOrder(string[] ss)
{
var list = ss.OrderBy(x => x, StringComparer.Ordinal).ToArray();
return string.Join("", list);
}
#endregion
}