C#實現md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
后臺一直用md5加密,一天群里人問,除了MD5還有其它的加密方法嗎?當時只知道還有個SHA,但怎么實現什么的都不清楚,于是當網上找了下,把幾種常見的加密方法都整理了下,用winform寫了個程序,如圖:
![]() ![]() 關鍵代碼 using System.Security; //MD5 不區分大小寫的 /// /// 對字符串進行SHA1加密 /// /// 需要加密的字符串 /// public string SHA1_Encrypt(string Source_String) { byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAlgorithm iSHA = new SHA1CryptoServiceProvider(); StrRes = iSHA.ComputeHash(StrRes); StringBuilder EnText = new StringBuilder(); foreach (byte iByte in StrRes) { EnText.AppendFormat("{0:x2}", iByte); } return EnText.ToString(); } /// /// SHA256加密,不可逆轉 /// /// string str:被加密的字符串 /// private string SHA256Encrypt(string str) { System.Security.Cryptography.SHA256 s256 = new System.Security.Cryptography.SHA256Managed(); byte[] byte1; byte1 = s256.ComputeHash(Encoding.Default.GetBytes(str)); s256.Clear(); return Convert.ToBase64String(byte1); } /// /// SHA384加密,不可逆轉 /// /// string str:被加密的字符串 /// private string SHA384Encrypt(string str) { System.Security.Cryptography.SHA384 s384 = new System.Security.Cryptography.SHA384Managed(); byte[] byte1; byte1 = s384.ComputeHash(Encoding.Default.GetBytes(str)); s384.Clear(); return Convert.ToBase64String(byte1); }
/// SHA512加密,不可逆轉 /// /// string str:被加密的字符串 /// private string SHA512Encrypt(string str) { System.Security.Cryptography.SHA512 s512 = new System.Security.Cryptography.SHA512Managed(); byte[] byte1; byte1 = s512.ComputeHash(Encoding.Default.GetBytes(str)); s512.Clear(); return Convert.ToBase64String(byte1); } //默認密鑰向量 /// DES加密字符串 /// /// 待加密的字符串 /// 加密密鑰,要求為8位 /// public string EncryptDES(string encryptString, string encryptKey) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } catch { return encryptString; } } /// /// DES解密字符串 /// /// 待解密的字符串 /// 解密密鑰,要求為8位,和加密密鑰相同 /// public string DecryptDES(string decryptString, string decryptKey) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(0, 8)); byte[] rgbIV = Keys; byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return decryptString; } } 該文章在 2012/1/4 22:55:20 編輯過 |
關鍵字查詢
相關文章
正在查詢... |