前段时间自己琢磨着写个给字符串加密和解密的小程序,在网上找了一些代码,稍做整理,记录如下:
一、不可逆加密
1、MD5
(之前一直以为经过MD5加密是不可逆的,今天在网上竟然找到个网址可以解密,试了一下,真的可以哦!)
/// <summary> /// 使用MD5加密字符串 /// </summary> /// <param name="source">待加密的字符串</param> /// <returns>加密后的字符串</returns> private static string MD5Encrypt(string source) { MD5 md5 = new MD5CryptoServiceProvider(); try { byte[] t = md5.ComputeHash(Encoding.ASCII.GetBytes(source)); StringBuilder sb = new StringBuilder(32); for (int i = 0; i < t.Length; i++) { sb.Append(t[i].ToString("x").PadLeft(2, '0')); } return sb.ToString().ToUpper(); } catch (CryptographicException ex) { throw ex; } catch (Exception ex) { throw ex; } finally { md5.Clear(); } }
2、SHA1
/// <summary> /// 使用SHA1算法加密字符串 /// </summary> /// <param name="source">待加密的字符串</param> /// <returns>加密后的字符串</returns> private static string SHA1Encrypt(string source) { SHA1 sha1 = new SHA1CryptoServiceProvider(); try { byte[] t = Encoding.ASCII.GetBytes(source); byte[] s = sha1.ComputeHash(t); StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++) { sb.Append(s[i].ToString("x").PadLeft(2, '0')); } return sb.ToString().ToUpper() ; } catch (CryptographicException ex) { throw ex; } catch (Exception ex) { throw ex; } finally { sha1.Clear(); } }
运行结果如下:

浙公网安备 33010602011771号