簡體   English   中英

如何從桌面應用解密Windows Store DPAPI保護的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM