2014-02-06 59 views
1

我正在使用.net 4.5和MachineKey.Protect/MachineKey.Unprotect來加密和解密值。我想知道什麼時候我們將代碼部署到有多個服務器的生產環境中,MachineKey.Protect/MachineKey.Unprotect能否正常工作而無需同步機器密鑰?MachineKey.Protect和MachineKey.Unprotect

下面是示例代碼解密:

var bytes = Convert.FromBase64String(Token); 
var decryValue = MachineKey.Unprotect(bytes, Purpose); 
string plainText = Encoding.UTF8.GetString(decryValue); 

讓我知道你的想法!

回答

4

要解除數據保護,您需要使用與用於保護數據的機器密鑰相同的機器密鑰。因此,如果您需要取消保護受其他服務器保護的數據,則您的服務器必須共享相同的機器密鑰。

+1

如果您需要爲您的Web.config生成一個machineKey元素,請轉到http://support.microsoft.com/kb/2915218並一直滾動到附錄A.將該腳本複製並粘貼到Powershell窗口,然後運行「Generate-MachineKey」命令。 – Levi