国产探花免费观看_亚洲丰满少妇自慰呻吟_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算法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚远县| 石渠县| 武鸣县| 丰县| 河源市| 同仁县| 绥棱县| 观塘区| 达尔| 固始县| 出国| 奎屯市| 桂东县| 昭觉县| 永登县| 普宁市| 潜山县| 岗巴县| 湘潭县| 闸北区| 道孚县| 朝阳市| 米脂县| 内乡县| 九龙坡区| 松溪县| 简阳市| 凌源市| 顺平县| 淮南市| 嫩江县| 平顺县| 沁水县| 红河县| 治县。| 石城县| 庄浪县| 乌审旗| 牡丹江市| 全南县| 项城市|