C#对字符串加密解密

暗月博客 2019年11月21日21:38:37评论364 views字数 1695阅读5分39秒阅读模式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security; using System.Security.Cryptography; using System.IO; namespace ConsoleApplication1 {     class Program     {         static void Main(string[] args)         {             Console.WriteLine(EncryptDES("aaaaaaaaaaaaaaaa", "22222222"));//加密             Console.WriteLine(DecryptDES(EncryptDES("aaaaaaaaaaaaaaaa", "22222222"), "22222222"));//解密         }         //默认密钥向量         private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };                /// DES加密字符串                 /// 待加密的字符串         /// 加密密钥,要求为8位         /// 加密成功返回加密后的字符串,失败返回源串          public static 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 static string DecryptDES(string decryptString, string decryptKey)         {             try             {                 byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);                 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;             }         }     } } 

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日21:38:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C#对字符串加密解密https://cn-sec.com/archives/72073.html

发表评论

匿名网友 填写信息