Data Protection API(DPAPI)完全按照您的需要進行操作。它提供任意數據的對稱加密,使用機器的憑證或(更好)用戶作爲加密密鑰。您不必擔心管理密鑰; Windows爲你照顧。如果用戶更改密碼,Windows將使用用戶的新密碼重新加密數據。
DPAPI暴露在.NET與System.Security.Cryptography.ProtectedData類:
byte[] plaintextBytes = GetDataToProtect();
byte[] encodedBytes = ProtectedData.Protect(plaintextBytes, null, DataProtectionScope.CurrentUser);
保護方法的第二個參數是可選的熵字節數組,其可以被用作附加的應用特定的「祕密」。
要解密,使用ProtectedData.Unprotect電話:
byte[] encodedBytes = GetDataToUnprotect();
byte[] plaintextBytes = ProtectedData.Unprotect(encodedBytes, null, DataProtectionScope.CurrentUser);
DPAPI漫遊配置文件(如描述here),但你需要加密的數據存儲在一個地方工作正常(網絡共享, IsolatedStorage與IsolatedStorageScope.Roaming等),您的各種機器可以訪問。
請參閱MSDN中的ProtectedData類以獲取更多信息。有一個DPAPI白皮書here,比你想要的更多的信息。
只是爲了子孫後代,你必須尋找到其他的代碼來處理堅持它的地方更多的「公共」(至少在你的內網爲例),使他們能夠從得到它其他機器。通常,您可以使用Environment.SpecialFolder.ApplicationData獲取機器和用戶特定的位置。 – 2008-09-30 20:02:06