【问题标题】:ProtectedData.Unprotect (DPAPI) stops working after password change密码更改后 ProtectedData.Unprotect (DPAPI) 停止工作
【发布时间】:2011-06-12 22:54:08
【问题描述】:

假设我加密数据并将其写入这样的文件:

byte[] encrypted =
    ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);
File.WriteAllBytes(filename, encrypted);

解密同样简单:

byte[] encrypted = File.ReadAllBytes(filename);
byte[] decrypted =
    ProtectedData.Unprotect(encrypted, null, DataProtectionScope.CurrentUser);

现在,当我在调用 Protect 和 Unprotect 之间更改我的 Windows 密码时,Unprotect 将引发异常。我确实希望将加密数据链接到我的用户帐户,但我也希望它能够在密码更改后继续存在。

我想我必须将数据交给 Windows,而不是将其写入我自己的文件,以便 Windows 可以在密码更改时重新加密它。我只是找不到告诉我如何操作的文档。有人知道吗?

【问题讨论】:

    标签: c#


    【解决方案1】:

    如何更改密码?使用正常程序,指定旧密码,ProtectedData应该可以,而在计算机管理下设置新密码则不行。

    【讨论】:

    • 这很快!谢谢大佬,就是这个问题。如果我让用户更改自己的密码,它会起作用。
    • Quick Q 如果我重设账户密码,然后再将其重新设置回原来的密码,Unprotect 会重新开始工作吗?
    • 对话框声明不可逆损失,所以它不起作用。
    猜你喜欢
    • 2017-10-10
    • 1970-01-01
    • 2014-10-01
    • 2021-05-21
    • 2011-03-12
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多