windows有自带的算法来计算MD5
原本在WPF是

  1. private string get_MD5(string str)
  2. { System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
  3. byte[] temp;
  4. StringBuilder strb = new StringBuilder();
  5. temp = md5.ComputeHash(Encoding.Unicode.GetBytes(str));
  6. md5.Clear();
  7. for (int i = 0; i < temp.Length; i++)
  8. { strb.Append(temp[i].ToString("X").PadLeft(2 , '0'));
  9. }
  10. return strb.ToString().ToLower();
  11. }

进行MD5,可是UWP没有System.Security.Cryptography.MD5CryptoServiceProvider

在msdn是

  1. Windows.Security.Cryptography.Core.CryptographicHash

来作为MD5的类
这个类只有两个方法:Append,GetValueAndReset
不知道微软是怎么要这样做

弄了好久才知道要怎么去md5

下面代码演示了三段不同字符串,经过MD5之后得到值
不过之前需要

  1. using Windows.Security.Cryptography;
  2. using Windows.Security.Cryptography.Core;
  3. using Windows.Storage.Streams;

代码

  1. public void ce()
  2. {
  3. //可以选择MD5 Sha1 Sha256 Sha384 Sha512
  4. string strAlgName = HashAlgorithmNames.Md5;
  5. // 创建一个 HashAlgorithmProvider 对象
  6. HashAlgorithmProvider objAlgProv = HashAlgorithmProvider.OpenAlgorithm(strAlgName);
  7. // 创建一个可重用的CryptographicHash对象
  8. CryptographicHash objHash = objAlgProv.CreateHash();
  9. string strMsg1 = "这是一段待加密的字符串";
  10. IBuffer buffMsg1 = CryptographicBuffer.ConvertStringToBinary(strMsg1 , BinaryStringEncoding.Utf16BE);
  11. objHash.Append(buffMsg1);
  12. IBuffer buffHash1 = objHash.GetValueAndReset();
  13. string strHash1 = CryptographicBuffer.EncodeToBase64String(buffHash1);
  14. string strMsg2 = "和前面一串不相同的字符串";
  15. IBuffer buffMsg2 = CryptographicBuffer.ConvertStringToBinary(strMsg2 , BinaryStringEncoding.Utf16BE);
  16. objHash.Append(buffMsg2);
  17. IBuffer buffHash2 = objHash.GetValueAndReset();
  18. string strHash2 = CryptographicBuffer.EncodeToBase64String(buffHash2);
  19. string strMsg3 = "每个都不相同";
  20. IBuffer buffMsg3 = CryptographicBuffer.ConvertStringToBinary(strMsg3 , BinaryStringEncoding.Utf16BE);
  21. objHash.Append(buffMsg3);
  22. IBuffer buffHash3 = objHash.GetValueAndReset();
  23. string strHash3 = CryptographicBuffer.EncodeToBase64String(buffHash3);
  24. _reminder.Append(strMsg1 + "\r\n");
  25. _reminder.Append(strHash1 + "\r\n");
  26. _reminder.Append(strMsg2 + "\r\n");
  27. _reminder.Append(strHash2 + "\r\n");
  28. _reminder.Append(strMsg3 + "\r\n");
  29. _reminder.Append(strHash3 + "\r\n");
  30. }

_reminder是一个StringBuilder用于展示
这个MD5结果有英文字符和数字特殊字符

上面代码其实也可以改为Sha1 Sha256 Sha384 Sha512只要在第一句的MD5改为你要的

参考文献:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/windows.security.cryptography.core.cryptographichash.aspx

判断ctrl按下

  1. private void reminderkeydown(object sender , KeyRoutedEventArgs e)
  2. {
  3. if (e.Key == Windows.System.VirtualKey.Control)
  4. {
  5. _ctrl = true;
  6. }
  7. if (_ctrl)
  8. {
  9. xreminder.Text = "ctrl+" + e.Key.ToString();
  10. }
  11. else
  12. {
  13. xreminder.Text = e.Key.ToString();
  14. }
  15. }
  16. private bool _ctrl;
  17. private void reminderkeyup(object sender , KeyRoutedEventArgs e)
  18. {
  19. if (e.Key == Windows.System.VirtualKey.Control)
  20. {
  21. _ctrl = false;
  22. }
  23. }

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

win10应用 UWP 使用MD5算法的更多相关文章

  1. 2019-7-29-win10-UWP-使用-MD5算法

    原文:2019-7-29-win10-UWP-使用-MD5算法 title author date CreateTime categories win10 UWP 使用 MD5算法 lindexi 2 ...

  2. md5算法

    md5算法 不可逆的:原文-->密文.用系统的API可以实现: 123456 ---密文 1987 ----密文: 算法步骤: 1.用每个byte去和11111111做与运算并且得到的是int类 ...

  3. MD5算法 简介

    MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能 l 输入任 ...

  4. md5算法原理一窥(其一)

    首先,需要了解的事,md5并不是传说中的加密算法,只是一种散列算法.其加密的算法并不是我们说所的那样固定不变,只是一种映射的关系. 所以解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD ...

  5. Java利用MessageDigest提供的MD5算法加密字符串或文件

    MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性.用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm).另外还有一种常用的消息摘要算法SHA1.如果想了 ...

  6. python学习笔记(MD5算法)

    博主最近进度停滞了 对web开发理解欠缺好多内容 今天整理下MD5算法,这个涉及到mysql数据库存储用户表密码字段的时候 一般是带有加密的 # -*- coding: utf-8 -*- impor ...

  7. 在MAC平台下编译Ngnix ,由于MD5算法不能编译通过 解决办法

    近期想学习Ngnix 代码,前些日子,对”自己下手狠一次“, 买了MAC 本. 所以想在Mac 上编译,是必须的,不然对不起自己的内心. 不巧遇到了MD5算法编译的问题 src/core/ngx_cr ...

  8. MD5算法步骤详解

    转自MD5算法步骤详解 之前要写一个MD5程序,但是从网络上看到的资料基本上一样,只是讲了一个大概.经过我自己的实践,我决定写一个心得,给需要实现MD5,但又不要求很高深的编程知识的童鞋参考.不多说了 ...

  9. Java 实现Md5算法

    package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * ...

随机推荐

  1. 201521123009 《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 Q1:List中指定元素的删除(题目4-1) 1.1 实验总结 Scanne ...

  2. 201521123024 《Java程序设计》第5周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 不能编 ...

  3. 201521123060 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  4. 201521123035《Java程序设计》第二周学习总结

    1.本周学习总结 这周学习了各种类与对象,还有基本类型的打包器,最主要的是字符串对象,老师还特地花了一节课时间讲解代码与习题. 2.书面作业 1.使用Eclipse关联jdk源代码,并查看String ...

  5. C#程序及批处理中确定windows操作系统的方法

    先上一段代码: private void Form1_Load(object sender, EventArgs e) { OperatingSystem os = Environment.OSVer ...

  6. 201521123111《Java程序设计》第12周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String ...

  7. 201521123006 《java程序设计》 第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  8. 第二部分----CSS的基础语法

    PART-1 CSS的基础常识 一.什么是CSS? W3C标准中,倡导有3:其一为内容与表现分离,其二为内容与行为分离,其三为内容结构的语义化.其倡导中第一条的"表现"指的便可以说 ...

  9. SpringMVC 构建Restful风格 及问题处理

    基本的请求URL: /person/{id}  GET  得到id的person /person POST      新增person /person/{id}  PUT  更新id的person / ...

  10. Spring02-AOP

    1,动态代理,指的是通过一个代理对象创建需要的业务对象,然后在这个代理对象中统一进行各种操作. 步骤: 1)写一个类实现InvocationHandler接口: 2)创建要代理的对象 2,创建一个简单 ...