2019-7-29-win10-UWP-使用-MD5算法
原文:2019-7-29-win10-UWP-使用-MD5算法
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 UWP 使用 MD5算法
|
lindexi
|
2019-7-29 12:2:42 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
在我们的应用需求很常见的,我们需要使用md5算法。
uwp的 md5 和 WPF 的使用差不多。
在 WPF ,我们使用
private string GetMD5(string str)
{
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] temp;
StringBuilder strb = new StringBuilder();
temp = md5.ComputeHash(Encoding.Unicode.GetBytes(str));
md5.Clear();
for (int i = 0; i < temp.Length; i++)
{
strb.Append(temp[i].ToString("X").PadLeft(2 , '0'));
}
return strb.ToString().ToLower();
}
然而在 UWP ,没有System.Security.Cryptography.MD5CryptoServiceProvider
,新的加密类放在Windows.Security.Cryptography.Core.CryptographicHash
UWP 的 md5使用很简单
首先添加在类的最前,让我们打的时候减少一些。
using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams;
然后把输入的字符串转为 md5 需要的二进制,注意编码。
Windows.Security.Cryptography.Core.HashAlgorithmProvider objAlgProv = Windows.Security.Cryptography.Core.HashAlgorithmProvider.OpenAlgorithm(Windows.Security.Cryptography.Core.HashAlgorithmNames.Md5);
Windows.Security.Cryptography.Core.CryptographicHash md5 = objAlgProv.CreateHash();
Windows.Storage.Streams.IBuffer buffMsg1 = Windows.Security.Cryptography.CryptographicBuffer.ConvertStringToBinary(str , Windows.Security.Cryptography.BinaryStringEncoding.Utf16BE);
md5.Append(buffMsg1);
Windows.Storage.Streams.IBuffer buffHash1 = md5.GetValueAndReset();
buffHash1
就是转换后的二进制,我们可以把它转为 base64 或 Hex
网上很多都是 Hex ,基本看到 md5 就是二进制转 Hex, Hex 就是16进制。
我们先说下如何转为 Base64
Windows.Security.Cryptography.CryptographicBuffer.EncodeToBase64String(buffHash1);
那么如何转为 Hex ?
CryptographicBuffer.EncodeToHexString(buffHash1);
下面写出代码,测试通过,在站长工具转换结果一样
public static string Md5(string str)
{
HashAlgorithmProvider algorithm = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5);
CryptographicHash md5 = algorithm.CreateHash();
Windows.Storage.Streams.IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(str, BinaryStringEncoding.Utf16BE);
md5.Append(buffer);
return CryptographicBuffer.EncodeToHexString(md5.GetValueAndReset());
}
<script src="https://gist.github.com/lindexi/0ecf1d8de7a222cda5f058e74de335c1.js"></script>
2019-7-29-win10-UWP-使用-MD5算法的更多相关文章
- win10应用 UWP 使用MD5算法
windows有自带的算法来计算MD5 原本在WPF是 private string get_MD5(string str) { System.Security.Cryptography.MD5Cry ...
- MD5算法的原理与实现
***********************************************声明************************************************ 原创 ...
- win10 uwp 入门
UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...
- 信息摘要算法之一:MD5算法解析及实现
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现. ...
- win10 uwp 如何开始写 uwp 程序
本文告诉大家如何创建一个 UWP 程序. 这是一系列的 uwp 入门博客,所以写的很简单 本文来告诉大家如何创建一个简单的程序 安装 VisualStudio 在开始写 UWP 需要安装 Visual ...
- MD5 算法
MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321(R. ...
- MD5算法解析
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来. MD5将 ...
- 【密码学】MD5算法原理
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能: 输 ...
- win10 uwp 萤火虫效果
原文:win10 uwp 萤火虫效果 本文在Nukepayload2指导下,使用他的思想用C#写出来. 本文告诉大家,如何使用 win2d 做出萤火虫效果. 安装 win2d 安装win2d的方法请使 ...
随机推荐
- HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process
vs2019 win10 情况:报错 HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process 微软官方解 ...
- 01初识 JavaScript
1.初识 JavaScript 1.1 JavaScript 是什么 l JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思) l 脚本语言 ...
- swift之NSDate
在通常项目中一般用的最多的情况就是获取日期并格式化. 1.只需要小时.分钟.秒数时个人觉得使用以下代码 let dateFormater = NSDateFormatter() dateFormate ...
- 前端基础之BOM和DOM操作
目录 BOM和DOM定义 windows对象 windows的子对象 navigator对象 screen对象 history对象 location对象 弹出框 警告框 确认框 提示框 计时相关 se ...
- docker 安装 rabbitMQ服务器
1. 镜像拉取 拉取rabbitMQ镜像文件,后边要接上 management 表名是拉取带有web管理端的镜像,有web界面方便管理. 2.默认用户运行镜像 docker run -d -p 567 ...
- ft6236 触摸屏驱动
在目录下amp\a53_linux\drv\extdrv\touchpad\ft6236下可以看到ft6236.c的文件 1. init函数 static int __init ft_init(voi ...
- 博客美化——Silence主题皮肤
介绍 一款专注阅读的博客园主题,主要面向于经常混迹 博客园 的朋友.其追求大道至简的终极真理,界面追求简洁.运行追求高效.部署追求简单. 博客皮肤源码地址 预览地址 如何部署.使用皮肤 Silen ...
- github配置ssh及多ssh key问题处理
一.生成ssh公私钥 用ssh-keygen生成公私钥. $ssh-keygen -t rsa -C "你的邮箱" -f ~/.ssh/id_rsa_mult 在~/./ssh目录 ...
- vlmcsd
scp ./vlmcsd-x64-musl-static xxx@host.ip:/opt/kms/ chmod u+x /opt/kms/vlmcsd-x64-musl-static ./vlmcs ...
- python使用open的OSError: [Errno 22] Invalid argument错误
这两天在写一个新闻类的spider时,遇到了OSError: [Errno 22] Invalid argument这个错误,苦恼的两天,无果.后来通过请教学长,发现原来是打开的文件名中含有一些系统的 ...