我正在使用DPAPI来加密我的asp.net配置文件。从我对DPAPI的简要阅读中,我知道它使用Windows密码作为密钥进行加密。这些问题,是谁的windows密码?
如果我有一个asp.net web应用程序,并且我在application_start事件中挂接了配置文件加密,它是否会使用我的应用程序池标识(网络服务)密码?
如果我有一个桌面控制台应用程序,并且我有一个Windows Scheduler来定期运行这个应用程序,那么DPAPI将使用谁的密码来加密/解密配置文件?
发布于 2013-03-22 01:29:31
DPAPI在您加密或解密时接受三个参数...
字节数组数据熵(byte array)
System.Security.Cryptography.DataProtectionScope.CurrentUser或System.Security.Cryptography.DataProtectionScope.LocalMachine)因为“熵”被特别命名为“可选”,如果没有提供它,那么只使用用户凭证或机器凭证来加密,这意味着它将无法加密在不同用户或不同计算机上运行的,无论您使用的是哪个“作用域”。
我将可选的熵称为“盐”,因为它是密码学中常用的术语,用于表示与用户或计算机凭据混合的“二级”密码短语,然后需要密码短语和特定的用户或计算机凭据
简而言之:使用的'password‘是从用户凭证或机器凭证派生的
https://stackoverflow.com/questions/11975173
复制相似问题