運用的一個簡單樣本對3DES加密

來源:互聯網
上載者:User
加密|樣本 提要 命名空間:System.Security.Cryptography.TripleDES 類簡單說明: 表示三重資料加密標準演算法的基類,TripleDES 的所有實現都必須從此基類派生,但TripleDES是從 SymmetricAlgorithm 類裡繼承出來。TripleDES 使用 DES 演算法的三次連續迭代。它可以使用兩個或三個 56 位密鑰。      使用目的:比較安全的加密一種方式,密鑰和向量的不同,會生產不同的加密字串。因為是DES演算法的三次連續迭代,而且演算法可逆,這樣對於資料保密性和可恢複性都不錯。    使用方法:直接進行字串輸入和輸出。二、程式碼範例本代碼參照了部分MSDN上的程式碼範例,再根據自己的實際情況,補充了一部分MSDN上沒有提到的內容 using System;using System.Security;using System.Security.Cryptography;using System.IO;using System.Text;using System.Threading; namespace TRIP3DES{    ///     /// Class1 的摘要說明。    ///     public class dllEncrypt    {      //密鑰      private const string sKey = "qJzGEh6hESZDVJeCnFPGuxzaiB7NLQM3";       //向量,向量可以為空白      private const string sIV = "qcDY6X+aPLw=";      //構造一個對稱演算法      private SymmetricAlgorithm mCSP = new TripleDESCryptoServiceProvider();         public dllEncrypt(){}       #region public string EncryptString(string Value)      ///       /// 加密字串      ///       /// 輸入的字串      /// 加密後的字串      public string EncryptString(string Value)      {         ICryptoTransform ct;         MemoryStream ms;         CryptoStream cs;         byte[] byt;         mCSP.Key = Convert.FromBase64String(sKey);         mCSP.IV = Convert.FromBase64String(sIV);         //指定加密的運算模式         mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;        //擷取或設定密碼編譯演算法的填充模式         mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;         ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);         byt = Encoding.UTF8.GetBytes(Value);         ms = new MemoryStream();         cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);         cs.Write(byt, 0, byt.Length);         cs.FlushFinalBlock();         cs.Close();         return Convert.ToBase64String(ms.ToArray());      }      #endregion       #region public string DecryptString(string Value)      ///       /// 解密字串      ///       /// 加過密的字串      /// 解密後的字串      public string DecryptString(string Value)      {         ICryptoTransform ct;         MemoryStream ms;         CryptoStream cs;         byte[] byt;         mCSP.Key = Convert.FromBase64String(sKey);         mCSP.IV = Convert.FromBase64String(sIV);         mCSP.Mode = System.Security.Cryptography.CipherMode.ECB;         mCSP.Padding = System.Security.Cryptography.PaddingMode.PKCS7;         ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);         byt = Convert.FromBase64String(Value);         ms = new MemoryStream();         cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);         cs.Write(byt, 0, byt.Length);         cs.FlushFinalBlock();         cs.Close();          return Encoding.UTF8.GetString(ms.ToArray());      }      #endregion    }} 三、總結做成類庫對於密鑰和向量的保管比較方便,輸入輸出全部是string型變數,這樣也比較方便,密鑰的產生可以用mSCP. GenerateKey()來產生,向量的產生也可以用mCSP.GenerateIV()來產生。大家也可以自己靈活的編寫符合自己的3DES演算法。

相關關鍵詞:
相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。