【WP开发】加密篇:单向加密
单向加密,简单地说就是对数据进行哈希处理,平时我们见得较多的有MD5、SHA1等,都属于单向加密。上一篇文章中,老周跟大家扯了有关双向加密的事,本文咱们就扯一下单向加密吧。
要对数据进行哈希处理也不是很复杂,应该说挺easy的。与双向加密的处理有着相同的规律。
要进行哈希运算,你应该:
1、调用HashAlgorithmProvider类的OpenAlgorithm()方法产生一个HashAlgorithmProvider实例。OpenAlgorithm方法是公共静态的,可以直接调用,参数是一个字符串,即哈希算法的名字,同样地,这个名字也不用我们去记忆,它由HashAlgorithmNames类的静态属性列表直接公开,调用OpenAlgorithm方法时,按实际需要直接套“公式”就可以了。
2、得到HashAlgorithmProvider实例后,它会公开一个名为HashData的方法,调用它就可以得到数据的哈希值了。
好了,为了节约口水资源,下面给大家演示一个例子。该例子将输入的字符串进行哈希处理。
关于界面,请欣赏下面的XAML代码:
<StackPanel>
<TextBox Name="txtInput" Header="输入内容:"/>
<ComboBox Header="选择算法:" Name="cmbHash">
<ComboBoxItem IsSelected="True">MD5</ComboBoxItem>
<ComboBoxItem>SHA1</ComboBoxItem>
</ComboBox>
<Button Content="加密" Click="OnHash"/>
<TextBox Name="txtOutput" Header="计算结果:" IsReadOnly="True" TextWrapping="Wrap"/>
</StackPanel>
用到一个ComboBox控件,用来选择使用MD5还是SHA1算法来进行处理。下面代码将处理按钮的Click事件:
private void OnHash(object sender, RoutedEventArgs e)
{
// 将字符串转换为二进制缓冲区
IBuffer bfstr = CryptographicBuffer.ConvertStringToBinary(txtInput.Text, BinaryStringEncoding.Utf8);
// 确定算法类型
string hashtype = null;
int index = this.cmbHash.SelectedIndex;
if (index == )
{
// Md5
hashtype = HashAlgorithmNames.Md5;
}
else
{
// Sha1
hashtype = HashAlgorithmNames.Sha1;
}
// 即将进行运算
HashAlgorithmProvider hashprd = HashAlgorithmProvider.OpenAlgorithm(hashtype);
IBuffer result = hashprd.HashData(bfstr);
// 如果计算结果的字节长度与算法所要求的长度不等
// 则说明计算不正确,就不做处理
if (result.Length == hashprd.HashLength)
{
// 将结果转化为十六进制字符串
txtOutput.Text = CryptographicBuffer.EncodeToHexString(result);
}
}
在代码的最后,为了让计算结果能以最常见的十六进制字符串的形式出现,就用CryptographicBuffer.EncodeToHexString方法把字节缓冲区中的数据变为字符串,以便在TextBlock控件上显示。
得到的运行结果请看下图。

好,正好吃饭时间快到,就此打住。下一篇文章就向大家介绍一下如果在经过网络传输的数据间进行加密和解密。
示例代码下载:http://files.cnblogs.com/files/tcjiaan/HashApp.zip
【WP开发】加密篇:单向加密的更多相关文章
- 前端MD5加密【单向加密】
密码存储的方式: 密码该如何存储呢?按照安全性由低到高,有这样几种选择: 1.密码名文直接存储在系统中 2.密码经过对称加密后再存储 3.密码经过非对称加密后再存储 步骤: 1.用户端:用户提交用户名 ...
- 【WP开发】加密篇:双向加密
说起双向加密,如果以前在.NET开发中弄过加/解密的朋友都不会陌生,常用的算法有DES.AES等.在RT应用程序中,也提供了加密相关的API,算法自然是一样的,只是API的封装方式不同罢了,因为RT不 ...
- WP开发笔记——字符串 转 MD5 加密
将字符串进行MD5加密,返回加密后的字符串. 从这里下载Md5.cs文件:http://pan.baidu.com/s/1hq3gpnu. 添加到Windows Phone 7项目中,在代码里面这样调 ...
- java加密算法入门(一)-算法概念及单向加密
说起加密,我的第一印象就是电视剧各种密码本破解解密的场景,这两天在看加密相关的东西,做下笔记以便以后查看,也提供给大家个参考. 本文是java加密的第一篇,主要讲述下消息编码Base64以及简单的消息 ...
- 简单讲解iOS应用开发中的MD5加密的相关使用<转>
这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用,示例代码基于传统的Objective-C,需要的朋友可以参考下 一.简单说明 1.说明 在开发应用的时候,数据的安全性至关重要,而仅仅用POS ...
- 简单讲解iOS应用开发中的MD5加密的相关使用
简单讲解iOS应用开发中的MD5加密的相关使用 作者:文顶顶 字体:[增加 减小] 类型:转载 时间:2015-12-19 我要评论 这篇文章主要介绍了iOS应用开发中的MD5加密的相关使用, ...
- C#开发中常用的加密解密方法
转载自:https://www.cnblogs.com/bj981/p/11203711.html C#开发中常用的加密解密方法 相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天 ...
- 麦子学院python开发全套完整无加密课程
点击了解更多Python课程>>> 麦子学院python开发全套完整无加密课程 第一阶段:Python基础准备 1.Web前端开发之HTML+CSS基础入门 2.Javascript ...
- linux初学者-磁盘加密篇
linux初学者-磁盘加密篇 因为保密需要,一般系统中会在文件和磁盘中进行加密,但是文件的加密比较容易破解,不安全.所以在特殊需要下,会对磁盘进行加密,磁盘加密后在磁盘损坏的同时,其中的数据也会损坏, ...
随机推荐
- ViewPager取消左右滑动切换功能
ViewPager取消左右滑动切换功能 最近做项目要求某种情况下ViewPager不能滑动,那么我们只需要重写这个方法就可以禁止ViewPager滑动 IndexViewPager.java: imp ...
- ARP报文发送的可视化实现
一.安装VS2013,下载wpdpack,为VS2010配置WinpCap环境: ⑴首先在View中选择Property Manager,然后展开工程,再展开Debug|Win32 ,接着右击 Mir ...
- 页面加载完成后,触发事件——trigger()
<button id="btn">点击我</button> <div id="test"></div> 如果页面 ...
- 微信——获取用户基本信息及openid 、access_token、code
获取用户信息,需要获取 access_token.openid 然后调用接口https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCES ...
- 谷歌浏览器如何查看或获取Cookie字符串
注:此博客仅供非web开发人员查看,以下内容都基于谷歌浏览器. 在网页空白处点击鼠标右键,在弹出菜单中选择[审查元素],可以看到网页下方出现审查元素相关界面. 在审查元素相关界面,点击[Network ...
- mac 终端 常用命令
基本命令1.列出文件ls 参数 目录名 例: 看看驱动目录下有什么:ls /System/Library/Extensions参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件2 ...
- Jenkins 集成打包和上传 App Store 的冲突
周一下午用 Jenkins 集成打包,遇到了一个很奇怪的问题,之前上传到 APP Store 的时候 Build Settings->“Code Signing Resource Rules P ...
- 破除Odoo 菜单栏提示 99+
菜单栏提示利用的menu对象的needaction_counter属性,默认只能显示99个 多于99则显示99+ 如果希望显示完整的数字,则需要改动如下两个地方. 一.menu菜单的显示限制: 将第一 ...
- WebService创建与使用
因为项目中需要实现客户端与服务器端的数据交换,以及获取服务器端其他程序的分析结果,所以对WebService做了些简单的了解,现记录如下: 一.WebService程序编写 1. 在VS中新建空白网 ...
- 注册GitHub和源程序版本管理软件和项目管理软件的优缺点
目前市面上主要源程序管理软件主要有:Microsoft TFS(Team Foundation Server).GitHub.Trac.BUGZILLA.Apple XCode.SVN Microso ...