国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用DES和AES實現(xiàn)加密解密功能示例

2020-01-24 00:37:06
字體:
來源:轉載
供稿:網友

本文實例講述了C#使用DES和AES實現(xiàn)加密解密功能。分享給大家供大家參考,具體如下:

using System;using System.Text;using System.Security.Cryptography;using System.IO;namespace MyCryptography{  /// <summary>  /// DES加密解密  /// </summary>  public class DES  {    /// <summary>    /// 獲取密鑰    /// </summary>    private static string Key    {      get { return @"P@+#wG+Z"; }    }    /// <summary>    /// 獲取向量    /// </summary>    private static string IV    {      get { return @"L%n67}G/Mk@k%:~Y"; }    }    /// <summary>    /// DES加密    /// </summary>    /// <param name="plainStr">明文字符串</param>    /// <returns>密文</returns>    public static string DESEncrypt(string plainStr)    {      byte[] bKey = Encoding.UTF8.GetBytes(Key);      byte[] bIV = Encoding.UTF8.GetBytes(IV);      byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);      string encrypt = null;      DESCryptoServiceProvider des = new DESCryptoServiceProvider();      try      {        using (MemoryStream mStream = new MemoryStream())        {          using (CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))          {            cStream.Write(byteArray, 0, byteArray.Length);            cStream.FlushFinalBlock();            encrypt = Convert.ToBase64String(mStream.ToArray());          }        }      }      catch { }      des.Clear();      return encrypt;    }    /// <summary>    /// DES解密    /// </summary>    /// <param name="encryptStr">密文字符串</param>    /// <returns>明文</returns>    public static string DESDecrypt(string encryptStr)    {      byte[] bKey = Encoding.UTF8.GetBytes(Key);      byte[] bIV = Encoding.UTF8.GetBytes(IV);      byte[] byteArray = Convert.FromBase64String(encryptStr);      string decrypt = null;      DESCryptoServiceProvider des = new DESCryptoServiceProvider();      try      {        using (MemoryStream mStream = new MemoryStream())        {          using (CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))          {            cStream.Write(byteArray, 0, byteArray.Length);            cStream.FlushFinalBlock();            decrypt = Encoding.UTF8.GetString(mStream.ToArray());          }        }      }      catch { }      des.Clear();      return decrypt;    }  }  /// <summary>  /// AES加密解密  /// </summary>  public class AES  {    /// <summary>    /// 獲取密鑰    /// </summary>    private static string Key    {      get { return @")O[NB]6,YF}+efcaj{+oESb9d8>Z'e9M"; }    }    /// <summary>    /// 獲取向量    /// </summary>    private static string IV    {      get { return @"L+/~f4,Ir)b$=pkf"; }    }    /// <summary>    /// AES加密    /// </summary>    /// <param name="plainStr">明文字符串</param>    /// <returns>密文</returns>    public static string AESEncrypt(string plainStr)    {      byte[] bKey = Encoding.UTF8.GetBytes(Key);      byte[] bIV = Encoding.UTF8.GetBytes(IV);      byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);      string encrypt = null;      Rijndael aes = Rijndael.Create();      try      {        using (MemoryStream mStream = new MemoryStream())        {          using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))          {            cStream.Write(byteArray, 0, byteArray.Length);            cStream.FlushFinalBlock();            encrypt = Convert.ToBase64String(mStream.ToArray());          }        }      }      catch { }      aes.Clear();      return encrypt;    }    /// <summary>    /// AES加密    /// </summary>    /// <param name="plainStr">明文字符串</param>    /// <param name="returnNull">加密失敗時是否返回 null,false 返回 String.Empty</param>    /// <returns>密文</returns>    public static string AESEncrypt(string plainStr, bool returnNull)    {      string encrypt = AESEncrypt(plainStr);      return returnNull ? encrypt : (encrypt == null ? String.Empty : encrypt);    }    /// <summary>    /// AES解密    /// </summary>    /// <param name="encryptStr">密文字符串</param>    /// <returns>明文</returns>    public static string AESDecrypt(string encryptStr)    {      byte[] bKey = Encoding.UTF8.GetBytes(Key);      byte[] bIV = Encoding.UTF8.GetBytes(IV);      byte[] byteArray = Convert.FromBase64String(encryptStr);      string decrypt = null;      Rijndael aes = Rijndael.Create();      try      {        using (MemoryStream mStream = new MemoryStream())        {          using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))          {            cStream.Write(byteArray, 0, byteArray.Length);            cStream.FlushFinalBlock();            decrypt = Encoding.UTF8.GetString(mStream.ToArray());          }        }      }      catch { }      aes.Clear();      return decrypt;    }    /// <summary>    /// AES解密    /// </summary>    /// <param name="encryptStr">密文字符串</param>    /// <param name="returnNull">解密失敗時是否返回 null,false 返回 String.Empty</param>    /// <returns>明文</returns>    public static string AESDecrypt(string encryptStr, bool returnNull)    {      string decrypt = AESDecrypt(encryptStr);      return returnNull ? decrypt : (decrypt == null ? String.Empty : decrypt);    }  }}

PS:關于加密解密感興趣的朋友還可以參考本站在線工具:

文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.VeVB.COm/password/txt_encode

MD5在線加密工具:
http://tools.VeVB.COm/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.VeVB.COm/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.VeVB.COm/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.VeVB.COm/password/sha_encode

更多關于C#相關內容還可查看本站專題:《C#加密與解密算法與技巧總結》、《C#窗體操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數(shù)據(jù)結構與算法教程》、《C#數(shù)組操作技巧總結》及《C#面向對象程序設計入門教程

希望本文所述對大家C#程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙河市| 绥棱县| 苍梧县| 巩义市| 洛隆县| 罗源县| 唐海县| 蒙山县| 张掖市| 宣汉县| 刚察县| 泾川县| 冕宁县| 凤庆县| 手游| 甘肃省| 江油市| 岢岚县| 天峻县| 广丰县| 西和县| 藁城市| 横峰县| 连州市| 甘德县| 景德镇市| 芒康县| 万源市| 平塘县| 湘阴县| 桑植县| 松溪县| 临朐县| 皮山县| 通城县| 泸州市| 东兰县| 祥云县| 湛江市| 兴业县| 郑州市|