Pin*_*Dev 5 asp.net cryptography
我在使用简单的 ProtectedData.Unprotect 调用时遇到了一些问题,这是我正在共享的代码,也许我在这里遗漏了一些东西。
public static byte[] SampleDecrypt(IEncrypted symmetricallyEncrypted, string base64DpapiLocalEncyrptedKey)
{
if (base64DpapiLocalEncryptedKey == null)
{
throw new ArgumentNullException("base64DpapiLocalEncryptedKey");
}
byte[] unprotectedKey =
ProtectedData.Unprotect(
base64DpapiLocalEncyrptedKey,
null,
DataProtectionScope.LocalMachine);
return unprotectedKey;
}
Run Code Online (Sandbox Code Playgroud)
其中base64DpapiLocalEncyrptedKey为:“ABCCENCMnd8CFdERjHoAVV/Pl+sMAAAA4q4wemrun5a67ohPku3cIAQCCCBAAAAKKKDZgAAqAAAABADDDCvGV5W6fCNcWbb9LPZp2U3AAAYYYSBBBCgDDDDEAAAANlpDcUbBvGqMyHXk8CPtUEoBBBBlB1TtM ZRC05ASxGV1/c3U548eVSPUO4X307ZDjRYytjNC35Di92q9RQAAACN//xNkexvIrGULI9GG9MdyS9Lee=="
当我运行上面的命令时,它给了我“密钥在指定状态下无效”
提前非常感谢你们!
我已经找出问题所在了。DPAPI 将加密密钥与您的计算机配对(假设它是使用计算机范围加密的),在我的例子中,使用的是本地计算机范围。
我认为它可以帮助任何遇到同样问题的人。将密钥尝试到不同的机器上,看看其中一台是否有效,而不是在另一台机器上尝试,以验证您的密钥是否错误。
我从不同的服务器创建了一个新密钥并能够使用它。
| 归档时间: |
|
| 查看次数: |
3373 次 |
| 最近记录: |