Статьи

Работа с шифрованием данных для безопасности в Windows Phone

В этой статье мы рассмотрим, как зашифровать данные и использовать их при разработке приложений для Windows Phone 7. Безопасность в основном связана с разработкой мобильных приложений, поскольку очень возможно неправильное использование таких данных, как пароли, строки подключения и т. Д., О которых мы должны заботиться, зашифровывая и дешифруя, где это возможно. В Windows Phone 7 у нас есть API защиты данных, который можно использовать для шифрования данных. Хранение конфиденциальных данных в изолированном хранилище приложения или шифрование с использованием локальных ключей не очень надежно, поскольку ключи, необходимые для расшифровки данных, будут находиться на самом устройстве. API защиты данных решает эту проблему явного создания и хранения ключа. ProtectData Этот класс используется для доступа к API защиты данных, которые можно использовать со встроенными методами, которые мы рассмотрим в этой статье.

API защиты данных использует метод защиты и метод снятия защиты, которые используются для шифрования и дешифрования данных по мере необходимости при использовании генераций динамического ключа при вызове. Давайте рассмотрим пошаговый процесс использования этих методов для шифрования данных и их расшифровки в этой статье.

шаги:

Откройте Visual Studio 2010 IDE в режиме администратора и создайте новое приложение Silverlight для Windows Phone 7 с допустимым именем проекта, как показано на экране ниже.

2012-02-28 23h06_21

Теперь давайте спроектируем приложение для получения входных данных от пользователя для шифрования данных и сохранения булавки в изолированном хранилище с использованием метода Protectdata . Как только мы добавим элементы управления на страницу, мы увидим экран, как показано ниже.

2012-02-28 23h18_17

Давайте начнем с нашего кода, чтобы добавить основную логику для шифрования данных, для этого нам нужно импортировать некоторые пространства имен, которые изначально не были доступны. Скопируйте и вставьте 4 пространства имен в код, как показано ниже.

Код позади:

using System.IO;
using System.IO.IsolatedStorage;
using System.Text;
using System.Security.Cryptography;

Как только мы добавим оператор использования, нам нужно добавить код ниже, чтобы зашифровать данные, которые вводит пользователь, как показано на экране ниже. В этом коде мы собираемся зашифровать вывод для байтового массива с помощью метода protect.

2012-02-28 23:30 30

Код позади:

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, который считывает данные с изолированного носителя данных по указанному нами пути, дешифрует пин-код и получает данные, как показано на экране ниже.

2012-02-28 23h37_19

Код позади:

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, которые можно использовать для шифрования конфиденциальных данных, как и когда это требуется при разработке приложения.

Спасибо за чтение моей статьи. Если вам нравятся мои сообщения и если вы заинтересованы в получении последних обновлений новых статей, следуйте за мной через один из вариантов в верхней части страницы.