乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      字符串加密與解密

       悟靜 2012-02-16

      字符串加密與解密

      設(shè)計(jì)應(yīng)用程序時,為了防止一些敏感信息的泄露,通常需要對這些信息進(jìn)行加密。以用戶的登錄密碼為例,如果密碼以明文的形式存儲在數(shù)據(jù)表中,很容易就會被人發(fā)現(xiàn);相反,如果密碼以密文的形式儲存,即使別人從數(shù)據(jù)表中發(fā)現(xiàn)了密碼,也是加密之后的密碼,根本不能使用。通過對密碼進(jìn)行加密,能夠極大地提高系統(tǒng)的保密性。下面通過一個實(shí)例講解如何對字符串進(jìn)行加密與解密。

      例6.21  創(chuàng)建一個控制臺應(yīng)用程序,命名為EDString。在該程序中定義一個靜態(tài)的字符串變量,用來記錄加密密鑰。代碼如下:(實(shí)例位置:光盤\TM\第6章\例6.21)

      1. static string encryptKey = "Oyea";    
        //定義密鑰 

      自定義一個返回值類型為string類型的Encrypt方法,用來對字符串進(jìn)行加密。該方法中有一個string類型的參數(shù),用來表示要加密的字符串。Encrypt方法實(shí)現(xiàn)代碼如下:

      1. #region 加密字符串  
      2. /// <summary> 
      3. /// 加密字符串  
      4. /// </summary> 
      5. /// <param name="str">要加密的字符串</param> 
      6. /// <returns>加密后的字符串</returns> 
      7. static string Encrypt(string str)  
      8. {  
      9.     DESCryptoServiceProvider descsp = new 
        DESCryptoServiceProvider();   //實(shí)例化加/解密類對象  
      10.     byte[] key = Encoding.Unicode.GetBytes(encryptKey); 
        //定義字節(jié)數(shù)組,用來存儲密鑰  
      11.     byte[] data = Encoding.Unicode.GetBytes(str);
        //定義字節(jié)數(shù)組,用來存儲要加密的字符串  
      12.     MemoryStream MStream = new MemoryStream(); 
        //實(shí)例化內(nèi)存流對象  
      13.     //使用內(nèi)存流實(shí)例化加密流對象   
      14.     CryptoStream CStream = new CryptoStream
        (MStream, descsp.CreateEncryptor(key, key), 
        CryptoStreamMode.Write);  
      15.     CStream.Write(data, 0, data.Length);  
        //向加密流中寫入數(shù)據(jù)  
      16.     CStream.FlushFinalBlock();              
        //釋放加密流  
      17.     return Convert.ToBase64String(MStream.ToArray());
        //返回加密后的字符串  
      18. }  
      19. #endregion 

      說明:由于加密、解密字符串時,需要用到加密類和內(nèi)存流,所以首先需要在命名空間區(qū)域添加System.Security.Cryptography和System.IO命名空間。

      自定義一個返回值類型為string類型的Decrypt方法,用來對加密后的字符串進(jìn)行解密。該方法中有一個string類型的參數(shù),用來表示要解密的字符串。Decrypt方法實(shí)現(xiàn)代碼如下:

      1. #region 解密字符串  
      2. /// <summary> 
      3. /// 解密字符串  
      4. /// </summary> 
      5. /// <param name="str">要解密的字符串</param> 
      6. /// <returns>解密后的字符串</returns> 
      7. static string Decrypt(string str)  
      8. {  
      9.     DESCryptoServiceProvider descsp = new
         DESCryptoServiceProvider();   //實(shí)例化加/解密類對象  
      10.     byte[] key = Encoding.Unicode.GetBytes(encryptKey); 
        //定義字節(jié)數(shù)組,用來存儲密鑰  
      11.     byte[] data = Convert.FromBase64String(str);
        //定義字節(jié)數(shù)組,用來存儲要解密的字符串  
      12.     MemoryStream MStream = new MemoryStream(); 
        //實(shí)例化內(nèi)存流對象  
      13.     //使用內(nèi)存流實(shí)例化解密流對象  
      14.     CryptoStream CStream = new CryptoStream(MStream, 
        descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);  
      15.     CStream.Write(data, 0, data.Length);      
        //向解密流中寫入數(shù)據(jù)  
      16.     CStream.FlushFinalBlock();               
        //釋放解密流  
      17.     return Encoding.Unicode.GetString
        (MStream.ToArray());       //返回解密后的字符串  
      18. }  
      19. #endregion 

      在Main方法中,首先提示輸入信息;然后定義一個string類型的變量,用來記錄輸入的字符串;之后調(diào)用自定義方法Encrypt加密輸入的字符串,并使用一個string類型的變量記錄該字符串;接著調(diào)用自定義方法Decrypt對該字符串進(jìn)行解密;最后分別輸出加密和解密后的字符串。Main方法實(shí)現(xiàn)代碼如下:

      1. static void Main(string[] args)  
      2. {  
      3.     Console.Write("請輸入要加密的字符串:");   
        //提示輸入字符串  
      4.     Console.WriteLine();                  
        //換行輸入  
      5.     string strOld = Console.ReadLine();     
        //記錄輸入的字符串  
      6.     string strNew = Encrypt(strOld);              
        //加密字符串  
      7.     Console.WriteLine("加密后的字符串:" + strNew);  
        //輸出加密后的字符串  
      8.     Console.WriteLine("解密后的字符串:" + Decrypt(strNew)); 
        //解密字符串并輸出  
      9.     Console.ReadLine();  

      程序運(yùn)行結(jié)果如圖6.5所示。

       
      圖6.5  字符串加密與解密

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多