Curso Windows Phone – Trabalhando com dados criptografados

Olá pessoal, tudo bom?

Sempre que desenvolvemos qualquer tipo de aplicativo, umas das precauções básicas é com a segurança dos dados a serem manipulados. Pensando nisso, resolvi escrever esse post para demonstrar uma forma de armazenar dados, de forma segura, na IsolatedStorage do Windows Phone.

No exemplo faremos um teste criptografando uma string e armazenando seu conteúdo em um arquivo no próprio dispositivo. Na sequencia, há o retorno da string criptografada para texto “limpo”.

Para implementação será necessário importar os namespaces abaixo:


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

Para interface da aplicação implemente o código a seguir no arquivo MainPage.xaml de seu projeto Windows Phone no Visual Studio.

...
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  <TextBlock Height="30" HorizontalAlignment="Left" Margin="9,6,0,0" Name="textBlock1" Text="Texto a ser criptografado" VerticalAlignment="Top" />
  <TextBox Height="72" HorizontalAlignment="Left" Margin="0,28,0,0" Name="txtTexto" Text="" VerticalAlignment="Top" Width="460" />
  <Button Content="Criptografar" Height="72" HorizontalAlignment="Left" Margin="84,106,0,0" Name="btnCriptografar" VerticalAlignment="Top" Width="289" Click="btnCriptografar_Click" />
  <Button Content="Descriptografar" Height="72" HorizontalAlignment="Left" Margin="84,184,0,0" Name="btnDescriptografar" VerticalAlignment="Top" Width="289" Click="btnDescriptografar_Click" />
 </Grid>
...

No arquivo C# implementaremos os seguintes métodos:

...
private void btnCriptografar_Click(object sender, RoutedEventArgs e)
{
  byte[] texto = Encoding.UTF8.GetBytes(txtTexto.Text);
  byte[] textoProtegido = ProtectedData.Protect(texto, null);
  this.ArmazenarDados(textoProtegido);
  txtTexto.Text = string.Empty;
  MessageBox.Show("Texto criptografado e armazenado.");
}

private void ArmazenarDados(byte[] textoProtegido)
{
  IsolatedStorageFile isostore = IsolatedStorageFile.GetUserStoreForApplication();
  IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream("dados.dat", FileMode.Create, isostore);
  fileStream.Write(textoProtegido, 0, textoProtegido.Length);
  fileStream.Close();
}

private void btnDescriptografar_Click(object sender, RoutedEventArgs e)
{
  byte[] texto = LerDados();
  byte[] textoLimpo = ProtectedData.Unprotect(texto, null);
  txtTexto.Text = Encoding.UTF8.GetString(textoLimpo, 0, textoLimpo.Length);
}

private byte[] LerDados()
{
  IsolatedStorageFile isostore = IsolatedStorageFile.GetUserStoreForApplication();
  IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream("dados.dat", FileMode.Open, isostore);
  Stream st = new StreamReader(fileStream).BaseStream;
  byte[] texto = new byte[st.Length];
  st.Read(texto, 0, texto.Length);
  st.Close();
  fileStream.Close();
  return texto;
}
...

Vejam nas imagens abaixo o resultado da aplicação.

criptografia

Bem pessoal é isso!

Grande abraço,
Eduardo Henrique Rizo

Post relacionado:

Curso Windows Phone Gratuíto – Vários tópicos

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , ,
Publicado em Windows Phone
8 comentários em “Curso Windows Phone – Trabalhando com dados criptografados
  1. Andre Nunes disse:

    Exatamente isso que eu precisava quando conversei com vc no outro post.
    Valew!!!!

  2. Nathiel Paulino disse:

    Bom dia,se eu quiser Criptografar fotos,como que faz? Obrigado

Deixe um comentário

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br