2016-01-20 219 views
1

我有一個UWP應用程序與我的Web服務通信,並且使用某些方法,我的應用程序必須加密參數。 對於解密我們在在通用Windows平臺(UWP)應用程序中使用DESCryptoServiceProvider

System.Security.Cryptography 

使用DESCryptoServiceProvider and CryptoStream但UWP沒有System.Security.Cryptography,Windows.Security.Cryptography不含DESCryptoServiceProvider and CryptoStream

請幫助我謝謝。

回答

1

在通用Windows應用程序中,您必須使用CryptographicEngine進行加密和解密操作。

對於您的解密用例,您可以使用DecryptAsync方法,該方法需要除了加密數據和IV之外的一個鍵來執行操作。

您需要的鍵將由SymmetricKeyAlgorithmProvider類創建。因此,通過打開desired algorithm並創建密鑰來初始化新實例。

例如:

// Static method call, "SymmetricAlgorithmNames" has several DES algorithms, 
// so choose the correct one 
var provider = SymmetricKeyAlgorithmProvider 
        .OpenAlgorithm(SymmetricAlgorithmNames.DesEcbPkcs7); 
var key = provider.CreateSymmetricKey(myKeyMaterial); 
+0

你知道如何使用已經存在的關鍵,而不是創建一個新的? API似乎沒有提供「導入」現有密鑰以用於對稱算法的方式。 – disklosr

+0

@disklosr這與上面的方法相同,只是使用不同的'myKeyMaterial'。這與使用密碼作爲密鑰材料的方式相同。你最終會得到大約230行代碼,在兩者之間使用'IBuffer'和'CryptographicEngine.DeriveKeyMaterial'。這不是很直觀,是的。 – Herdo

相關問題