前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

如安在Windows Phone利用法度中加密解密数据代码

时候:2013-03-19 23:36来源:知行网www.zhixing123.cn 编辑:麦田守望者

在法度中加密解密是我们常要用到的服从,比如对暗码,数据库连接字符串,PIN等的加密。固然Windows Phone限定了利用法度仅能拜候本身的自力存储,但是将首要数据以明文的情势存储在Isolated Storage仍然是不宁静的。在Windows Phone中加密解密经由过程Data Protection API (DPAPI)来实现。如果对加密解密有所体味的朋友会清楚,非对称的加密我们需求用到密钥对,而这常常需求我们本身天生,同时密钥本身需求存储,或经由过程第三方机构公布证书等的体例来考证信息的可靠性。而Windows Phone为我们简化了这个困难,每个法度在第一次运行的时候便可以获得它本身的解密密钥。而我们只需求借助ProtectedData类的Protect 和 Unprotect体例别离实现加密和解密。对数据范例的文件,直接可以对数据库加密,在连接字符串中利用Password参数便可。当然连接字符串本身也需求进行加密和解密,以避免暗码泄漏。

接上去我将演示如安在Windows Phone 利用法度中应用这两个别例。本文请参考MSDN文档http://msdn.microsoft.com/en-us/library/hh487164(v=VS.92).aspx。

建立项目

  1. 建立Windows Phone 7项目EncryptionAndDecryption
  2. 增加TextBox控件textBoxData
  3. 增加buttonStore按钮,用于加密数据,将加密成果保存在内存中
  4. 增加buttonRetrieve按钮,用于解密数据,并将解密成果用弹出对话框显现。

终究ContentPanel部分的XAML以下:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Orientation="Vertical">
<TextBox Height="71" Name="textBoxData" Text="" Width="460" Foreground="{StaticResource PhoneAccentBrush}" FontSize="{StaticResource PhoneFontSizeLarge}" />
<Button Content="Store" Height="71" Name="buttonStore" Width="160" BorderBrush="{StaticResource PhoneAccentBrush}" Foreground="{StaticResource PhoneAccentBrush}" Click="ButtonStoreClick" />
<Button Content="Retrieve" Height="71" Name="buttonRetrieve" Width="160" BorderBrush="{StaticResource PhoneAccentBrush}" Foreground="{StaticResource PhoneAccentBrush}" Click="ButtonRetrieveClick" />
</StackPanel>
</Grid>
</Grid>

加密数据

当单击buttonStore后,加密textBlockData 中的数据,并保存在变量中,代码以下:

private byte[] _encryptedBytes;

private void ButtonStoreClick(object sender, RoutedEventArgs e)
{
var sourceBytes = Encoding.UTF8.GetBytes(textBoxData.Text.Trim());
_encryptedBytes = ProtectedData.Protect(sourceBytes, null);
}

解密数据

当单击buttonRetrieve后,解密数据,代码以下:

private void ButtonRetrieveClick(object sender, RoutedEventArgs e)
{
if (_encryptedBytes == null) return;
var bytes = ProtectedData.Unprotect(_encryptedBytes, null);
if (bytes != null) MessageBox.Show(Encoding.UTF8.GetString(bytes, 0, bytes.Length));
}

 

运行成果

输入Hello Windows Phone!

Encryption and Decryption in Windows Phone Application - 1Encryption and Decryption in Windows Phone Application -2

运行成果到达预期。

别的申明

凡是环境下,我们需求将加密后的数据保存在自力存储中;Protect与Unprotect的第二个参数是信息熵,可以增加加密的复杂度,可以均为null,同时必须保持分歧。

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):C# C#实例教程 c#根本教程 C#源代码 c#技能
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣