簡體   English   中英

MachineKey.Protect() 使用什么密碼?

[英]What cipher does MachineKey.Protect() use?

我剛剛遇到了MachineKey.Protect()方法。 我以前從未見過這個(承包商將其引入代碼庫)。 看起來很有趣,但關於它正在做什么的文檔有點稀少。

我並不是一個在沒有一點調查的情況下盲目追隨微軟的人,所以我試圖找到關於它是如何工作的文檔,它使用什么密碼,密鑰有多大,密鑰是如何生成的等等。但該文檔包含令人驚訝的內容信息很少,我找不到有關如何實施的任何其他信息:

此方法取代了 Encode 方法,后者要求調用者指定是否應該對明文數據進行加密、簽名或兩者兼而有之。 Protect 方法執行適當的操作並安全地保護數據。 這種方法產生的密文數據只能通過Unprotect方法解密

目的參數是一個可選的原因列表,可以將密文鎖定到特定目的。 此參數使您可以隔離由應用程序中的不同子系統執行的加密操作。 惡意客戶端不應該能夠獲得一個子系統的 Protect 方法的結果並將其作為輸入提供給另一個子系統的 Unprotect 方法,這可能會危及應用程序的安全。 purpose 參數有助於確保受保護的數據只能由最初生成它的組件使用。 應用程序應確保每個子系統使用唯一的用途列表。

那么任何人都可以闡明它使用什么密碼來“保護”發送到其中的數據? 任何關於使用的最佳實踐也會很有用。 什么時候適合使用,什么時候不適合,等等?

machineKey 元素指定用於加密的算法和密鑰。

在評論之后, MachineKey類的文檔包括以下導致machineKey Element片段

MachineKey 類提供公開 ASP.NET 提供的散列和加密邏輯的方法。 有關 ASP.NET 使用哪些加密和散列算法以及與它們一起使用的密鑰值的信息,請參閱 machineKey 元素(ASP.NET 設置架構)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM