C# 常用加密解密方法
2014-12-03 12:11
323 查看
字符串加密分可逆和不可逆加密两种,下面直接贴上代码
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace Operator.CommonOp { /// <summary> /// 字符串加密。 /// </summary> public class StringSecurity { /// <summary> /// MD5加密。 /// </summary> public static string MD5Encrypt(string originalString) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] palindata = Encoding.Default.GetBytes(originalString); byte[] encryptdata = md5.ComputeHash(palindata); return Convert.ToBase64String(encryptdata); } /// <summary> /// RAS加密。 /// </summary> public static string RSAEncrypt(string originalString) { CspParameters param = new CspParameters(); param.KeyContainerName = "12345"; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param)) { byte[] plaindata = Encoding.Default.GetBytes(originalString); byte[] encryptdata = rsa.Encrypt(plaindata, false); return Convert.ToBase64String(encryptdata); } } /// <summary> /// RAS解密。 /// </summary> public static string RSADecrypt(string securitylString) { CspParameters param = new CspParameters(); param.KeyContainerName = "12345"; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param)) { byte[] encryptdata = Convert.FromBase64String(securitylString); byte[] decryptdata = rsa.Decrypt(encryptdata, false); return Encoding.Default.GetString(decryptdata); } } /// <summary> /// DES加密。 /// </summary> public static string DESEncrypt(string originalString) { string securtyString = null; string key = "12345678"; string iv = "87654321"; byte[] btKey = Encoding.UTF8.GetBytes(key); byte[] btIV = Encoding.UTF8.GetBytes(iv); byte[] inData = Encoding.UTF8.GetBytes(originalString); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write); cs.Write(inData, 0, inData.Length); cs.FlushFinalBlock(); securtyString = Convert.ToBase64String(ms.ToArray()); cs.Close(); ms.Close(); return securtyString; } /// <summary> /// DES解密。 /// </summary> public static string DESDecrypt(string securityString) { byte[] inData = null; try { inData = Convert.FromBase64String(securityString); } catch (Exception) { return null; } string originalString = null; string key = "12345678"; string iv = "87654321"; byte[] btKey = Encoding.UTF8.GetBytes(key); byte[] btIV = Encoding.UTF8.GetBytes(iv); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write); cs.Write(inData, 0, inData.Length); try { cs.FlushFinalBlock(); } catch (Exception) { ms.Close(); return null; } originalString = Encoding.UTF8.GetString(ms.ToArray()); cs.Close(); ms.Close(); return originalString; } } }
相关文章推荐
- C#中,常用的加密解密方法解析
- C#常用字符串加密解密方法封装代码
- c#常用的加密解密方法
- C#常用的加密解密方法
- C#开发中常用加密解密方法解析
- C#开发中常用加密解密方法解析
- C#中常用的字符串加密,解密方法封装,包含只加密,不解密的方法
- C#开发中常用加密解密方法解析
- C#常用字符串加密解密方法封装代码
- C# 常用字符串加密解密方法
- C#加密和解密方法
- 常用加密解密方法
- ASP.NET(C#)常用数据加密和解密方法汇总
- ASP.NET(C#)常用数据加密和解密方法1
- ASP.NET(C#)常用数据加密和解密方法汇总
- C#加密解密方法
- ASP.NET(C#)常用数据加密和解密方法汇总
- C# 实现 数据加密、解密方法
- C# 與JAVA 共用的DES 加密解密方法
- C# 常用加密方法收集 对称,非对称