C#ASEの暗号化と復号化を達成

///  <要約> 
        /// AES暗号化(高度暗号化規格は、現在のAES標準Rijndaelアルゴリズムという暗号化アルゴリズムの標準、高速で、高いセキュリティレベル、実現の次の世代である)
         ///  </要約> 
        // /  ます。<param name = "encryptString"> 平文を暗号化する</ param>の
        ///  <PARAM = "encryptkey"名> 暗号化キー</ param>の
        ///  <戻り値> </戻り値> 
        [HttpPost(" テスト" )]
         パブリック 文字列AesEncrypt([FromBody]リクエスト要求)
        { 
            文字列 encryptString = request.encryptString;
              encryptkey = request.encryptKey。
            もしストリング.IsNullOrEmpty(encryptString))
            { 
                スロー新しい新しい例外(" 平文空できない" )); 
            } 

            IF.IsNullOrEmpty(encryptkey))
            { 
                スロー新しい新しい例外(" キーは空白ではないかもしれない" )); 
            } 

            VAR = mStrEncrypt "" ; 

            VAR mBtIv = Convert.FromBase64String(" Rkb4jvUy / ye7Cd7k89QQgQ == " ); 

            VAR mAesProvider = Rijndael.Create(); 

            試してみます
            { 
                // 待加密明文串转为バイト格式
                VAR mBtEncryptString = Encoding.UTF8.GetBytes(encryptString)。

                VAR mStream = 新しいのMemoryStream(); 

                VaRの mCsstream = 新しいCryptoStream(mStream、
                    mAesProvider.CreateEncryptor(Encoding.UTF8.GetBytes(encryptKey)、mBtIv)、CryptoStreamMode.Write)。

                mCsstream.Write(mBtEncryptString、0 、mBtEncryptString.Length)。
                mCsstream.FlushFinalBlock(); 

                mStrEncrypt = Convert.ToBase64String(mStream.ToArray())。

                mStream.Close();
                mStream.Dispose();

                mCsstream.Close(); 
                mCsstream.Dispose(); 
            } 
            キャッチ(のIOExceptionのEX)
            { 
                スローEXと、
            } 
            キャッチ(CryptographicExceptionのEX)
            { 
                スローEX。
            } 
            キャッチ(ArgumentExceptionがのEX)
            { 
                スローEX。
            } 
            キャッチ(例外例)
            { 
                スローEXと、
            } 
            最後に
            、{  
                mAesProvider.Clear()。
            } 

            戻りmStrEncrypt。
        } 

        /// <概要> 
        /// AES復号(高度暗号化標準は、暗号化アルゴリズムの標準、高速で、高いセキュリティレベル、実現現在AES標準Rijndaelアルゴリズムの次の世代である)
         ///  </要約> 
        ///  <PARAM NAME = "decryptStringは"> 暗号文を解読すること</ PARAM> 
        ///  <PARAM NAME = "decryptKey"> 復号鍵</ PARAM> 
        ///  <戻り値> </戻り> 
        [HttpPost(" 復号化" )]
         パブリック 文字列AesDecrypt([FromBody]リクエスト要求)
        { 
            文字列 decryptString = request.encryptString;
             文字列= decryptKey request.encryptKey;
             IF.IsNullOrEmpty(decryptString))
            { スロー新しい新しい例外(" 暗号文が空できない" )); 
            } IF.IsNullOrEmpty(decryptKey))
            { スロー新しい新しい例外(" キーをすることはできません空" )); 
            } VAR mStrDecrypt = " " ; VAR mBtIv = Convert.FromBase64String(" Rkb4jvUy / ye7Cd7k89QQgQ == " ); VAR
                

            
                

            

            

            mAesProvider = Rijndael.Create()。

            試す
            { 
                VAR mBtDecryptString = Convert.FromBase64String(decryptString)。

                VAR mStream = 新しいのMemoryStream(); 

                VAR mCsstream = 新しいCryptoStream(mStream、
                    mAesProvider.CreateDecryptor(Encoding.UTF8.GetBytes(decryptKey)、mBtIv)、CryptoStreamMode.Write)。

                mCsstream.Write(mBtDecryptString、0 、mBtDecryptString.Length)。
                mCsstream.FlushFinalBlock(); 

                mStrDecrypt = Encoding.Default.GetString(mStream.ToArray())。

                mStream.Close();
                mStream.Dispose(); 

                mCsstream.Close(); 
                mCsstream.Dispose();
            } 
            キャッチ(のIOExceptionのEX)
            { 
                スローEXと、
            } 
            キャッチ(CryptographicExceptionのEX)
            { 
                スローEX。
            } 
            キャッチ(ArgumentExceptionがのEX)
            { 
                スローEX。
            } 
            キャッチ(例外例)
            { 
                スローEXと、
            } 
            最後に
            { 
                mAesProvider.Clear()。
            } 

            戻りmStrDecrypt。
        }

 

おすすめ

転載: www.cnblogs.com/yxcn/p/11699193.html