免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
c#字符串加密與解密封裝
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Security.Cryptography;  
  6. using System.IO;  
  7.   
  8. namespace 字符串加密解密封裝  
  9. {  
  10.   
  11.     /// <summary>  
  12.     /// 字符串加密  
  13.     /// </summary>  
  14.     class  Encryption_Decryption  
  15.     {  
  16.           
  17.         static byte[] Key{get;set;}//加密的密鑰  
  18.         static byte[] Iv{get;set;} //加密的初始化矢量,初始化加密函數(shù)的變量。  
  19.   
  20.         static Encryption_Decryption()  
  21.         {  
  22.             //算法簽名,這里我用的是TripleDES加密算法,TripleDESCryptoServiceProvider構(gòu)造方法同時會初始化一組隨機的key和IV。  
  23.             TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();             
  24.             Key=tDESalg.Key;  
  25.             Iv=tDESalg.IV;  
  26.         }  
  27.   
  28.         /// <summary>  
  29.         /// 字符串加密  
  30.         /// </summary>  
  31.         /// <param name="encStr">需要加密的字符串</param>  
  32.         /// <returns>一個已經(jīng)加密的字符串的二進制流</returns>  
  33.         public static byte[] EncStream(string encStr)  
  34.         {  
  35.             //將用戶傳進來的字符串轉(zhuǎn)換成編碼為UTF8的二進制流  
  36.             byte[] encStrStream = Encoding.UTF8.GetBytes(encStr);  
  37.               
  38.   
  39.             //建立一個MemoryStream,這里面存放加密后的數(shù)據(jù)流  
  40.             MemoryStream mStream = new MemoryStream();  
  41.   
  42.             //使用MemoryStream和key,IV新建一個CryptoStream對象    
  43.             CryptoStream cStream = new CryptoStream(mStream, new TripleDESCryptoServiceProvider().CreateEncryptor(Key, Iv), CryptoStreamMode.Write);  
  44.   
  45.             //將加密后的字節(jié)流寫入到MemoryStream  
  46.             cStream.Write(encStrStream, 0, encStrStream.Length);  
  47.   
  48.             //把緩沖區(qū)中的最后狀態(tài)更新到MemoryStream,并清除cStream的緩存區(qū)  
  49.             cStream.FlushFinalBlock();  
  50.   
  51.             // 把解密后的數(shù)據(jù)流轉(zhuǎn)成字節(jié)流  
  52.             byte[] ret = mStream.ToArray();  
  53.   
  54.             //關(guān)閉兩個streams  
  55.   
  56.             cStream.Close();  
  57.             mStream.Close();  
  58.   
  59.             return ret;  
  60.         }  
  61.       
  62.   
  63.         /// <summary>  
  64.         /// 對加密二進制流進行解密  
  65.         /// </summary>  
  66.         /// <param name="byteStream">需要解密的二進制流</param>  
  67.         /// <returns>返回一個已經(jīng)解密的字符串</returns>  
  68.         public static string DecStrStream(byte[] byteStream)  
  69.         {  
  70.             // 建立一個MemoryStream,這里面存放加密后的數(shù)據(jù)流  
  71.             MemoryStream msDecrypt = new MemoryStream(byteStream);  
  72.   
  73.             // 使用MemoryStream 和key、IV新建一個CryptoStream 對象  
  74.             CryptoStream csDecrypt = new CryptoStream(msDecrypt, new TripleDESCryptoServiceProvider().CreateDecryptor(Key, Iv), CryptoStreamMode.Read);  
  75.   
  76.             // 根據(jù)密文byte[]的長度(可能比加密前的明文長),新建一個存放解密后明文的byte[]  
  77.             byte[] DecryptDataArray = new byte[byteStream.Length];  
  78.   
  79.             // 把解密后的數(shù)據(jù)讀入到DecryptDataArray  
  80.             csDecrypt.Read(DecryptDataArray, 0, DecryptDataArray.Length);  
  81.   
  82.             string DecStr = Encoding.UTF8.GetString(DecryptDataArray);  
  83.   
  84.             msDecrypt.Close();  
  85.   
  86.             csDecrypt.Close();  
  87.   
  88.             return DecStr;  
  89.         }  
  90.     }  
  91.   
  92.   
  93.     class Program  
  94.     {  
  95.         //測試加密,解密都成功  
  96.         static void Main(string[] args)  
  97.         {  
  98.             //加密測試  
  99.             byte[] s = Encryption_Decryption.EncStream("你好");  
  100.   
  101.             foreach (byte b in s)  
  102.             {  
  103.                 Console.WriteLine(b);  
  104.             }  
  105.   
  106.             //解密測試  
  107.             string ss = Encryption_Decryption.DecStrStream(s);  
  108.             Console.WriteLine(ss);  
  109.   
  110.             Console.ReadKey();  
  111.         }  
  112.     }  
  113. }  



本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
保護自己的軟件
使用X.509數(shù)字證書加密解密實務(wù)(三)-- 使用RSA證書結(jié)合對稱加密技術(shù)加密長數(shù)據(jù)
字符串加密與解密
C#里的一些加密解密標準函數(shù)示例——DES,SHA1,RSA
C#一個字符串的加密與解密
用C#實現(xiàn)的數(shù)據(jù)加密(一) —— 對稱加密算法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服