C# ProtectedData.ASP.NET web app中CurrentUser的Protect方法
在我的ASP.NET web应用程序中,我需要在数据库中保存密码。(请注意,这不是登录密码,提供此密码的用户会收到一个可见的安全警告。)我正在考虑在将密码放入数据库之前对其进行一些置乱 所以我想这样做:C# ProtectedData.ASP.NET web app中CurrentUser的Protect方法,c#,asp.net,iis,cryptography,C#,Asp.net,Iis,Cryptography,在我的ASP.NET web应用程序中,我需要在数据库中保存密码。(请注意,这不是登录密码,提供此密码的用户会收到一个可见的安全警告。)我正在考虑在将密码放入数据库之前对其进行一些置乱 所以我想这样做: byte[] bytesToSave_Scrambled = System.Security.Cryptography.ProtectedData.Protect( System.Text.Encoding.UTF8.GetBytes(password), null, Syst
byte[] bytesToSave_Scrambled =
System.Security.Cryptography.ProtectedData.Protect(
System.Text.Encoding.UTF8.GetBytes(password), null,
System.Security.Cryptography.DataProtectionScope.CurrentUser);
问题是,根据,当我使用DataProtectionScope.CurrentUser
时,只有同一个用户帐户才能将其解码回来。我当然可以使用DataProtectionScope.LocalMachine
,但文档中说它不太安全
因此,我的问题是,当我的web应用在web服务器上运行时,它是否在同一个Windows用户帐户下运行,以确保上述置乱方法的一致性?这取决于几个方面,例如:web服务器是AD域的一部分吗?关于身份验证,web服务器是如何配置的?等等@Yahia:嗯,我不知道这是怎么回事。所以我想
DataProtectionScope.LocalMachine
是一个不错的选择,哈?如果你事先不知道,那么:是的,要么使用LocalMachine
,要么使用一个可配置的密钥(如果他们需要将应用程序移动到另一台机器上),再加上一个已知的安全算法…@Yahia:谢谢你的建议。