在每个 C# 应用程序中可以找到哪些信息可以用作加密的唯一盐,包括 Web 应用程序、Windows 服务和 wcf 层?
我想创建一个库,允许使用(DPAPI)System.Security.Cryptography.ProtectedData.Protect()
和System.Security.Cryptography.ProtectedData.Unprotect()
方法轻松加密存储在配置文件中的敏感数据。
该库还将由我正在制作的一个单独的应用程序使用,该应用程序可以在使用这些值的应用程序之外加密和解密配置值,允许更新配置文件而无需重新编译所有内容或需要访问原始源,尽管访问源应始终可用。
盐必须足够简单,以便在单独的应用程序中手动输入(例如,很难识别 GUID)。
System.Reflection.Assembly.GetEntryAssembly()
看起来很有希望,如果这是调用我正在制作的这个库的应用程序/服务的程序集,我可以在那里使用一些东西。第一个想法是“将 salt 设置为存储加密数据的配置文件名......”,但对于网站来说,配置文件始终是 'web.config'。
欢迎任何其他想法。
更新...
'GetExecutingAssembly()'...与'GetEntryAssembly()' 有何不同?