шифрование с использованием protectedData.protect в Windows Phone 7.1 - PullRequest
1 голос
/ 22 февраля 2012

Я занимаюсь разработкой приложения для Windows Phone 7, в котором отправляю зашифрованные данные на веб-службу, которая их расшифровывает. Я использую protectedData.protect, который работает правильно только до тех пор, пока я шифрую и дешифрую из своего приложения (только для тестирования); как только я пользуюсь веб-сервисом, поведение меняется.

Это код из веб-сервиса:

If Flag = False Then ' Decrypt
    Dim ProtectedPinByte As Byte() = Encoding.UTF8.GetBytes(password)
    Dim PinByte2 As Byte() = ProtectedData.Unprotect(ProtectedPinByte, Nothing, DataProtectionScope.CurrentUser)
    password = Encoding.UTF8.GetString(PinByte2, 0, PinByte2.Length)
    Return Bll.Utilites.EncryptDecryptStr(True, password) 'Encrypts using another algorithm
Else ' Encrypt
    EncPassword = Bll.Utilites.EncryptDecryptStr(False, password) 'decrypts  from another algorithm
    Dim PinByte As Byte() = Encoding.UTF8.GetBytes(EncPassword)
    Dim ProtectedPinByte As Byte() = ProtectedData.Protect(PinByte, Nothing, DataProtectionScope.CurrentUser)
    Return Encoding.UTF8.GetString(ProtectedPinByte, 0, ProtectedPinByte.Length)
End If

1 Ответ

1 голос
/ 28 марта 2012

Это невозможно, поскольку класс ProtectedData в Windows Phone использует учетные данные устройства для шифрования данных, его можно дешифровать только на этом устройстве.

В Silverlight для Windows Phone как пользователь, так и компьютер учетные данные используются для шифрования или дешифрования данных.

http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata(v=vs.96).aspx

...