[英]How to decrypt Windows Store DPAPI protected data from desktop app
我们正在编写一种工具,用于将数据从Windows应用商店应用迁移到Windows桌面应用。 商店应用程序使用DPAPI保护了一些数据,我们需要能够从桌面应用程序解密这些数据。
当调用ProtectedData.Unprotect方法时,我们得到一个CryptographicException声明“参数无效”。 查看商店应用程序代码,我可以看到DPAPI API与桌面.NET框架不同。 商店应用API的使用方式如下:
provider = new DataProtectionProvider("LOCAL=user");
...
IBuffer origBuffer = await this.provider.UnprotectAsync(encryptedBuffer);
桌面API如下所示
byte[] ProtectedData.Unprotect(byte[] encryptedBytes,
byte[] entropy,
DataProtectionScope scope);
我们尝试使用DataProtectionScope.CurrentUser
和entropy null
但这会导致上述CryptographicException。 可以猜测,在内部,商店API使用特定的熵,否则我们无法解密数据。
有谁知道商店DPAPI API在后台进行的操作使我们可以解密商店数据?
抱歉,没有直接答案,但是您不能从桌面应用程序引用WinRT API来解密此安全字节吗?
这是在WPF应用程序中引用WinRT API的指南: http : //www.hanselman.com/blog/HowToCallWinRTAPIsInWindows8FromCDesktopApplicationsWinRTDiagram.aspx
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.