1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C#常用加密解密工具类(SHA1 MD5 DES Base64)

C#常用加密解密工具类(SHA1 MD5 DES Base64)

时间:2020-05-28 20:13:58

相关推荐

C#常用加密解密工具类(SHA1 MD5 DES Base64)

以下代码可直接使用

/// <summary>/// 字符串加密解密类/// </summary>public static class StringSecurity{#region SHA1 加密/// <summary>/// 使用SHA1加密字符串。/// </summary>/// <param name="inputString">输入字符串。</param>/// <returns>加密后的字符串。(40个字符)</returns>public static string SHA1Encrypt(string inputString){SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();byte[] encryptedBytes = puteHash(Encoding.ASCII.GetBytes(inputString));StringBuilder sb = new StringBuilder();for (int i = 0; i < encryptedBytes.Length; i++){sb.AppendFormat("{0:x2}", encryptedBytes[i]);}return sb.ToString();}#endregion#region MD5 加密/// <summary>/// 32位MD5加密/// </summary>/// <param name="sourceString">原字符串</param>/// <param name="codeName">编码名称</param>/// <returns></returns>public static string MD5Encrypt(string sourceString, string codeName = "UTF-8"){MD5 md5 = new MD5CryptoServiceProvider();byte[] source = puteHash(Encoding.GetEncoding(codeName).GetBytes(sourceString));StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < source.Length; i++){sBuilder.Append(source[i].ToString("X"));//x小写 X大写 x2填充对齐}return sBuilder.ToString();}#endregion#region DES 加密/解密private static byte[] key = ASCIIEncoding.ASCII.GetBytes("88888888");private static byte[] iv = ASCIIEncoding.ASCII.GetBytes("11111111");/// <summary>/// DES加密。/// </summary>/// <param name="inputString">输入字符串。</param>/// <returns>加密后的字符串。</returns>public static string DESEncrypt(string inputString){MemoryStream ms = null;CryptoStream cs = null;StreamWriter sw = null;DESCryptoServiceProvider des = new DESCryptoServiceProvider();try{ms = new MemoryStream();cs = new CryptoStream(ms, des.CreateEncryptor(key, iv), CryptoStreamMode.Write);sw = new StreamWriter(cs);sw.Write(inputString);sw.Flush();cs.FlushFinalBlock();return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);}finally{if (sw != null) sw.Close();if (cs != null) cs.Close();if (ms != null) ms.Close();}}/// <summary>/// DES解密。/// </summary>/// <param name="inputString">输入字符串。</param>/// <returns>解密后的字符串。</returns>public static string DESDecrypt(string inputString){MemoryStream ms = null;CryptoStream cs = null;StreamReader sr = null;DESCryptoServiceProvider des = new DESCryptoServiceProvider();try{ms = new MemoryStream(Convert.FromBase64String(inputString));cs = new CryptoStream(ms, des.CreateDecryptor(key, iv), CryptoStreamMode.Read);sr = new StreamReader(cs);return sr.ReadToEnd();}finally{if (sr != null) sr.Close();if (cs != null) cs.Close();if (ms != null) ms.Close();}}#endregion#region Base64 加密/解密/// <summary>/// Base64加密,采用utf8编码方式加密/// </summary>/// <param name="source">待加密的明文</param>/// <returns>加密后的字符串</returns>public static string Base64Encrypt(string source){return Base64Encode(Encoding.UTF8, source);}/// <summary>/// Base64解密,采用utf8编码方式解密/// </summary>/// <param name="result">待解密的密文</param>/// <returns>解密后的字符串</returns>public static string Base64Decrypt(string result){return Base64Decode(Encoding.UTF8, result);}/// <summary>/// Base64加密/// </summary>/// <param name="encodeType">加密采用的编码方式</param>/// <param name="source">待加密的明文</param>/// <returns></returns>private static string Base64Encode(Encoding encodeType, string source){string encode = string.Empty;byte[] bytes = encodeType.GetBytes(source);try{encode = Convert.ToBase64String(bytes);}catch{encode = source;}return encode;}/// <summary>/// Base64解密/// </summary>/// <param name="encodeType">解密采用的编码方式,注意和加密时采用的方式一致</param>/// <param name="result">待解密的密文</param>/// <returns>解密后的字符串</returns>private static string Base64Decode(Encoding encodeType, string result){string decode = string.Empty;byte[] bytes = Convert.FromBase64String(result);try{decode = encodeType.GetString(bytes);}catch{decode = result;}return decode;}#endregion}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。