搜尋
首頁後端開發C#.Net教程Asp.net,C# 加密解密字串
Asp.net,C# 加密解密字串Dec 20, 2016 pm 04:01 PM
asp.net

先在web.config | app.config 檔案下增加以下程式碼: 
     
pCLcm/ccx "/> 
       
   
 
 
    ? 

Key:加密演算法的金鑰。 



接著新建類CryptoHelper,作為加密幫助類別。 

首先要從設定檔中得到IV 和Key。所以基本碼如下: 
public class CryptoHelper 
        { 
           vate readonly string IV = string.Empty; 
            //private readonly string Key = "KIPSToILGp6fl+3gXJvMsN4IajizYBBT";
            private readonly string Key = string.Empty; 

            ///

 
            ///構造函數 
            ///
 
            public CryptoHelper() 
            { 
                IV = ConfigurationManager.AppSettings["IV"] ; 
                Key

注意加入System.Configuration.dll程式集參考。 



在獲得了IV 和Key 之後,需要取得提供加密服務的Service 類別。 

在這裡,使用的是System.Security.Cryptography; 命名空間下的TripleDESCryptoServiceProvider類別。

取得TripleDESCryptoServiceProvider 的方法如下: 
///  
        /// 取得加密服務類別 
  turns> 
        private TripleDESCryptoServiceProvider GetCryptoProvider() 
        {
            TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider(); 

            provider.Key = Convert.FromBase64String(Key); 

            return provider; 方法 

CreateEncryptor:建立對稱加密器物件ICryptoTransform. 

CreateDecryptor:建立對稱解密者物件ICryptoTransform 

加密器物件和解密者物件可以被CryptoStream物件使用。來對流進行加密和解密。 

cryptoStream 的建構子如下: 
public CryptoStream(Stream stream, ICryptoTransform transform, CryptoStreamMode mode); 

使用transform 物件轉換stream 。



完整的加密字串代碼如下: 
///  
        /// 加密後的字串 
  putValue">輸入值. 
        ///  
public string GetEncryptedValue(string inputValue) 
        { 
              // 建立記憶體流以保存加密後的串流 
            MemoryStream mStream = new MemoryStream(); 

   CryptoStream cStream = new CryptoStream(mStream, 
            provider.CreateEncryptor(), CryptoStreamMode.Write);  
            byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue); 

      
            cStream.Write(toEncrypt, 0, toEncrypt.Length); 
           // 在呼叫轉換流的FlushFinalBlock方法後,內部就會進行轉換了,此時mStream就是加密後的流了。 
            byte[] ret = mStream.ToArray(); 

         
            mStream.Close(); 

            //以64的位元組進行64編碼。
            return Convert.ToBase64String(ret); 
        } 

   /// 取得解密後的值 
        ///
 
        /// 加密後的字串. 
        ///  
                 TripleDESCryptoServiceProvider provider = this.GetCryptoProvider();

            byte[] inputEquivalent = Convert.FromBase64String(inputValue); 

        ); 

           MemoryStream msDecrypt = new MemoryStream(); 

            // 建立轉換流。
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, 
                                                           CryptoStreamMode.Write); ength); 

            csDecrypt.FlushFinalBlock(); 
          ); 

            //取得字串。
            return new UTF8Encoding().GetString(msDecrypt.ToArray()); 
      ; 
使用System.Collections.Generic; 
使用System.Linq; 
使用System.Text; 
使用System.Security.Cryptography; 
使用System.IO; 
使用系統設定; 

命名空間WindowsFormsApplication1 
{    //私有唯讀字串IV = "SuFjcEmp/TE ="; 
        私有唯讀字串IV = string.Empty; 
        //私有唯讀字串Key = "KIPSToILGp6fl+3gXJvMsNKeyIKJSBTIc​​id Empty; 

        public CryptoHelper() 

            IV = ConfigurationManager.AppSettings["IV"]; 
           
        /// ; 
        /// 取得加密後的字串 
        ///

        /// 輸入值。  
        ///  
        public string GetEncrypted   TripleDESCryptoServiceProvider provider = this.GetCryptoProvider(); 

            // 建立記憶體流來儲存加密的流  mStream = new MemoryStream(); 

            // 加密轉換流 
            provider.CreateEncryptor(), CryptoStreamMode.Write); 
            // 使用UTF8編碼取得輸入字串的位元組。 
            byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue); 

      
            cStream.Write(toEncrypt, 0, toEncrypt.Length); 
           // 在呼叫轉換流的FlushFinalBlock方法後,內部就會進行轉換了,此時mStream就是加密後的流了。 
            byte[] ret = mStream.ToArray(); 

            // 關閉流。 
            cStream.Close(); 
            mStream    
            return Convert.ToBase64String(ret); 
        } 
        /// ; 
        ///  
私人TripleDESCryptoServiceProvider GetCryptoProvider() 
        { 
              provider.IV = Convert.FromBase64String(IV); 
           provider.Key = Convert.FromBase64String(Key); 🠎 } 

        /// ; 
        /// 取得解密後的值 
     的字串。  
        ///  
        public string GetDecrypted   TripleDESCryptoServiceProvider provider = this.GetCryptoProvider(); 
            byte[] inputEquivalent = Convert.FromBase64String(inputValue); // 建立記憶體流保存解密後的資料 
            MemoryStream msDecrypt = new MemoryStream(); 

    
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, 
         toStreamMode.Write); 

            csDecrypt.Write(inputEquivalent, 0, inputEquivalent.Length); 🠎)D  
            csDecrypt.Close( ); 

            //取得字串。 
            return new UTF8Encoding().GetString(msDecrypt.ToArray()); 
     

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
C語言中NULL的替代方案有哪些C語言中NULL的替代方案有哪些Mar 03, 2025 pm 05:37 PM

本文探討了C中的無指針啟用的挑戰。它認為問題本身不是零,而是濫用。 本文詳細介紹了預防退出的最佳實踐,包括提出前檢查,指針pitiberi

c語言編譯器哪個好?c語言編譯器哪個好?Mar 03, 2025 pm 05:39 PM

本文指導初學者選擇C編譯器。 它認為,海灣合作委員會由於其易用性,廣泛的可用性和廣泛的資源,最適合初學者。 但是,它也比較了海灣室,Clang,MSVC和TCC,突出了它們的差異

c語言編譯器怎麼加下一格c語言編譯器怎麼加下一格Mar 03, 2025 pm 05:44 PM

本文解釋瞭如何使用printf中的\ n逃脫序列在C中創建新線字符並列出函數。 它詳細介紹了功能並提供了代碼示例,以說明其用於輸出中的線路斷裂。

C語言中NULL在現代編程中還重要嗎C語言中NULL在現代編程中還重要嗎Mar 03, 2025 pm 05:35 PM

本文強調了NULL在現代C編程中的持續重要性。 儘管取得了進步,但NULL對於明確的指針管理仍然至關重要,從而通過標記沒有有效的內存地址來防止細分故障。 最好的prac

c語言編譯器網頁版有哪些?c語言編譯器網頁版有哪些?Mar 03, 2025 pm 05:42 PM

本文回顧了初學者的在線C編譯器,重點是易用性和調試功能。 在線GDB和REPL。 其他選項,例如Programiz和Compil

c語言在線編程網站 c語言編譯器官方網站匯總c語言在線編程網站 c語言編譯器官方網站匯總Mar 03, 2025 pm 05:41 PM

本文比較在線C編程平台,突出了諸如調試工具,IDE功能,標準合規性和內存/執行限制等功能的差異。 它認為“最佳”平台取決於用戶需求

c語言編譯器複製代碼方法c語言編譯器複製代碼方法Mar 03, 2025 pm 05:43 PM

本文討論了C IDE中的有效代碼複製。 它強調,複製是IDE功能,而不是編譯器功能,並且詳細提高了效率的策略,包括使用IDE選擇工具,代碼折疊,搜索/替換,Templa

c語言編譯器不彈出輸出窗口怎麼解決c語言編譯器不彈出輸出窗口怎麼解決Mar 03, 2025 pm 05:40 PM

本文在C程序編譯中對缺少輸出窗口進行故障排除。 它研究了諸如無法運行可執行文件,程序錯誤,錯誤編譯器設置,背景過程和快速程序終止之類的原因。解決方案涉及ch

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)