Я использовал System.Data.SQLite для SQLite в Windows Mobile. Он имеет встроенную поддержку шифрования. Я нашел много реализаций SQLite для Windows Phone 7. Но ни у кого из них нет встроенной поддержки шифрования. Кто-нибудь знает любую реализацию SQLite для Windows Phone 7, которая поддерживает шифрование?
Windows Phone 7 - SQLite с шифрованием
Ответ 1
В итоге я использовал SQL CE, выпущенный в выпуске Mango (Windows Phone 7.1), который имеет встроенную поддержку шифрования (пароля). Обратитесь к http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2011/05/24/windows-phone-mango-what-s-new-local-database-part-1-of-8.aspx, который имеет очень хорошее объяснение.
Ответ 2
В Windows Phone 7, похоже, нет API, который позволит вам шифровать/дешифровать данные на основе учетных данных пользователя, подобных DPAPI, поэтому вам нужно сделать это самостоятельно. Документация позволяет предположить, что на Windows Phone 7 доступны следующие алгоритмы:
- AES
- HMACSHA1
- HMACSHA256
- Rfc2898DeriveBytes
- RSA
- SHA1
- SHA256
Эти алгоритмы должны дать все, что вам нужно для создания достойной схемы шифрования, и должно быть достаточно хорошо, чтобы вы шифровали чувствительные столбцы в схеме базы данных, а не всю базу данных.
Единственная проблема тогда - посмотреть, какой ключ использовать. Если можно запросить у пользователя пароль (это очень зависит от того, какой тип приложения вы создаете), вы можете использовать Rfc2898DerivedBytes для получения пароля с пользовательского ввода. В противном случае вы можете создать ключ из некоторых данных устройства. (см. Как получить симметричный ключ в Windows Phone 7?. После получения ключа вы можете использовать AES для шифрования.
Я знаю, что это именно то, что вы хотели, но по крайней мере должно указывать на вас в правильном направлении.