В этой статье мы рассмотрим, как зашифровать данные и использовать их при разработке приложений для Windows Phone 7. Безопасность в основном связана с разработкой мобильных приложений, поскольку очень возможно неправильное использование таких данных, как пароли, строки подключения и т. Д., О которых мы должны заботиться, зашифровывая и дешифруя, где это возможно. В Windows Phone 7 у нас есть API защиты данных, который можно использовать для шифрования данных. Хранение конфиденциальных данных в изолированном хранилище приложения или шифрование с использованием локальных ключей не очень надежно, поскольку ключи, необходимые для расшифровки данных, будут находиться на самом устройстве. API защиты данных решает эту проблему явного создания и хранения ключа. ProtectData Этот класс используется для доступа к API защиты данных, которые можно использовать со встроенными методами, которые мы рассмотрим в этой статье.
API защиты данных использует метод защиты и метод снятия защиты, которые используются для шифрования и дешифрования данных по мере необходимости при использовании генераций динамического ключа при вызове. Давайте рассмотрим пошаговый процесс использования этих методов для шифрования данных и их расшифровки в этой статье.
шаги:
Откройте Visual Studio 2010 IDE в режиме администратора и создайте новое приложение Silverlight для Windows Phone 7 с допустимым именем проекта, как показано на экране ниже.
Теперь давайте спроектируем приложение для получения входных данных от пользователя для шифрования данных и сохранения булавки в изолированном хранилище с использованием метода Protectdata . Как только мы добавим элементы управления на страницу, мы увидим экран, как показано ниже.
Давайте начнем с нашего кода, чтобы добавить основную логику для шифрования данных, для этого нам нужно импортировать некоторые пространства имен, которые изначально не были доступны. Скопируйте и вставьте 4 пространства имен в код, как показано ниже.
Код позади:
using System.IO; using System.IO.IsolatedStorage; using System.Text; using System.Security.Cryptography;
Как только мы добавим оператор использования, нам нужно добавить код ниже, чтобы зашифровать данные, которые вводит пользователь, как показано на экране ниже. В этом коде мы собираемся зашифровать вывод для байтового массива с помощью метода protect.
Код позади:
private void button1_Click(object sender, RoutedEventArgs e) { byte[] PinByte = Encoding.UTF8.GetBytes(textBlock1.Text); byte[] ProtectedPinByte = ProtectedData.Protect(PinByte, null); this.Writedata(ProtectedPinByte); textBlock1.Text = ""; MessageBox.Show("Encrypted the Pin!!!"); } private void Writedata(byte[] pinData) { IsolatedStorageFile ISfile = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream swIS = new IsolatedStorageFileStream(strFilePath, System.IO.FileMode.Create, System.IO.FileAccess.Write, ISfile); Stream writer = new StreamWriter(swIS).BaseStream; writer.Write(pinData, 0, pinData.Length); writer.Close(); swIS.Close(); }
Теперь мы закончили с кодом для шифрования данных, мы используем закрытый метод Writedata для хранения данных в изолированном хранилище с помощью класса изолированного потока. После того, как пин-код зашифрован, мы предоставили окно сообщения, чтобы указать пользователю, что данные зашифрованы правильно. Теперь давайте расшифруем данные о втором событии нажатия кнопки. Расшифровка данных будет выполняться с использованием метода UnProtect, который считывает данные с изолированного носителя данных по указанному нами пути, дешифрует пин-код и получает данные, как показано на экране ниже.
Код позади:
private void button2_Click(object sender, RoutedEventArgs e) { byte[] ProtectedPinByte = this.ReadPinFromFile(); byte[] PinByte = ProtectedData.Unprotect(ProtectedPinByte, null); textBlock1.Text = Encoding.UTF8.GetString(PinByte, 0, PinByte.Length); } private byte[] ReadPinFromFile() { IsolatedStorageFile ISfile = IsolatedStorageFile.GetUserStoreForApplication(); IsolatedStorageFileStream rsIS = new IsolatedStorageFileStream(strFilePath, System.IO.FileMode.Open, FileAccess.Read, ISfile); Stream reader = new StreamReader(rsIS).BaseStream; byte[] pinArray = new byte[reader.Length]; reader.Read(pinArray, 0, pinArray.Length); reader.Close(); rsIS.Close(); return pinArray; }
Теперь мы закончили с нашей частью кодирования. Чтобы проверить шифрование и дешифрование, запустите приложение, нажав клавишу F5 на клавиатуре, и мы увидим, как приложение загружается в эмулятор Windows Phone 7. Введите пример данных, и мы увидим, как происходит шифрование и дешифрование, как показано на экранах ниже.
Экраны вывода:
Вывод:
Таким образом, в этой статье мы увидели наиболее интересную тему о том, как зашифровать и расшифровать данные с помощью доступных API, которые можно использовать для шифрования конфиденциальных данных, как и когда это требуется при разработке приложения.
Спасибо за чтение моей статьи. Если вам нравятся мои сообщения и если вы заинтересованы в получении последних обновлений новых статей, следуйте за мной через один из вариантов в верхней части страницы.