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




