最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年06月21日 11:00:15   作者:Kevin.Cheung  
這篇文章主要介紹了C#使用DES和AES實現(xiàn)加密解密功能,結(jié)合具體實例形式分析了C#實現(xiàn)DES與AES的加密解密功能實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了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:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

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

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

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

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

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

更多關(guān)于C#相關(guān)內(nèi)容還可查看本站專題:《C#加密與解密算法與技巧總結(jié)》、《C#窗體操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程

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

相關(guān)文章

  • C#字符串如何提取數(shù)值(帶小數(shù)點)

    C#字符串如何提取數(shù)值(帶小數(shù)點)

    這篇文章主要介紹了C#字符串如何提取數(shù)值問題(帶小數(shù)點),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • C#中GraphicsPath的Widen方法用法實例

    C#中GraphicsPath的Widen方法用法實例

    這篇文章主要介紹了C#中GraphicsPath的Widen方法用法,實例分析了Widen方法的使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#使用GET、POST請求獲取結(jié)果

    C#使用GET、POST請求獲取結(jié)果

    這篇文章主要以一個簡單的用戶登陸為例,詳細(xì)介紹了C#使用GET、POST請求獲取結(jié)果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • c#:CTS類型系統(tǒng)

    c#:CTS類型系統(tǒng)

    CTS通用類型系統(tǒng),是.Net中一套定義類型的規(guī)則。我們要掌握c#開發(fā),首先要建立這個類型概念,只有知道c#的元素是什么類型,才能進行相關(guān)的分析和選材。
    2012-12-12
  • C#中[]的幾種用法示例代碼

    C#中[]的幾種用法示例代碼

    不像數(shù)學(xué)里面有方括號和花括號,在C#語法中”[]”與”{}”有專門的用途,下面這篇文章主要給大家介紹了關(guān)于C#中[]的幾種用法,需要的朋友可以參考下
    2023-01-01
  • C#設(shè)計模式實現(xiàn)之生成器模式和責(zé)任鏈模式

    C#設(shè)計模式實現(xiàn)之生成器模式和責(zé)任鏈模式

    學(xué)完設(shè)計模式之后,你就感覺它會慢慢地影響到你寫代碼的思維方式,下面這篇文章主要給大家介紹了關(guān)于C#設(shè)計模式實現(xiàn)之生成器模式和責(zé)任鏈模式的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • C#中系統(tǒng)時間和UNIX時間戳互相轉(zhuǎn)換

    C#中系統(tǒng)時間和UNIX時間戳互相轉(zhuǎn)換

    本文主要介紹C#中系統(tǒng)時間和UNIX時間戳相互轉(zhuǎn)換的方法,大家可以直接拿去用,希望有用。
    2016-05-05
  • c#泛型學(xué)習(xí)詳解 創(chuàng)建線性鏈表

    c#泛型學(xué)習(xí)詳解 創(chuàng)建線性鏈表

    Visual C# 2.0 的一個最受期待的(或許也是最讓人畏懼)的一個特性就是對于泛型的支持。這篇文章將告訴你泛型用來解決什么樣的問題,以及如何使用它們來提高你的代碼質(zhì)量,還有你不必恐懼泛型的原因
    2014-01-01
  • C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的應(yīng)用(上)

    C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的應(yīng)用(上)

    本篇文章對C#中ExpandoObject,DynamicObject,DynamicMetaOb的應(yīng)用進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#實現(xiàn)Check Password和鎖定輸錯密碼鎖定賬戶功能

    C#實現(xiàn)Check Password和鎖定輸錯密碼鎖定賬戶功能

    C#實現(xiàn)的Check Password,并根據(jù)輸錯密碼的次數(shù)分情況鎖定賬戶:如果輸入錯誤3次,登錄賬戶鎖定5分鐘并提示X點X分后重試登錄,具體實現(xiàn)代碼感興趣的朋友跟隨小編一起看看吧
    2020-01-01

最新評論

安化县| 雅江县| 新河县| 公安县| 安岳县| 托克托县| 图木舒克市| 定结县| 古交市| 祁东县| 武威市| 鸡东县| 铁岭市| 睢宁县| 新郑市| 大关县| 昭觉县| 怀远县| 昌图县| 连南| 新巴尔虎右旗| 张家界市| 华容县| 饶河县| 额尔古纳市| 耒阳市| 嘉定区| 康平县| 犍为县| 同江市| 定安县| 天镇县| 万年县| 郁南县| 连南| 包头市| 洛宁县| 宝坻区| 灌云县| 盘山县| 清苑县|