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

首頁 > 開發 > 綜合 > 正文

運用的一個簡單示例對3DES加密

2024-07-21 02:24:34
字體:
來源:轉載
供稿:網友
提要 命名空間: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算法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克东县| 巴彦淖尔市| 惠东县| 黄骅市| 莒南县| 英超| 池州市| 得荣县| 河间市| 永宁县| 余姚市| 霍州市| 忻州市| 河东区| 灵丘县| 钟祥市| 墨江| 富民县| 电白县| 德惠市| 嘉禾县| 济阳县| 衡山县| 北票市| 平乐县| 扎兰屯市| 葫芦岛市| 绥芬河市| 临泉县| 油尖旺区| 皋兰县| 沈丘县| 来安县| 贞丰县| 株洲市| 沙湾县| 景泰县| 蕲春县| 称多县| 德格县| 锡林浩特市|