当前位置: 首页 > news >正文

手机电商网站模板郑州网站建设html5

手机电商网站模板,郑州网站建设html5,如何制作假网页,网站seo查询一、报文摘要算法基本概念 ​ 使用加密通常可达到报文鉴别的目的,因为伪造的报文解密后一般不能得到可理解的内容。但简单采用这种方法,计算机很难自动识别报文是否被篡改。另外,对于不需要保密而只需要报文鉴别的网络应用,对整个…

一、报文摘要算法基本概念

​ 使用加密通常可达到报文鉴别的目的,因为伪造的报文解密后一般不能得到可理解的内容。但简单采用这种方法,计算机很难自动识别报文是否被篡改。另外,对于不需要保密而只需要报文鉴别的网络应用,对整个报文的加密和解密,会使计算机增加很多不必要的负担(加密和解密要花费相当多的CPU时间)。

​ 更有效的方法是使用报文摘要(MessageDigest,MD)来进行报文鉴别

​ 发送方将可变 长度的报文m经过报文摘要算法运算后,得出固定长度的报文摘要H(m)。然后对H(m)进行加密,得出EK(H(m)),并将其附加在报文m后面发送出去。接收方把EK(H(m))解密还原为H(m),再把收到的报文进行报文摘要运算,看结果是否与收到的H(m)一样。如不一样,则可断定收到的报文不是发送方产生的。具体流程如下:

img

​ 目前广泛应用的报文摘要算法有MD5[RFC1321]和安全散列算法1(SecureHashAlgorithm,SHA-1)。MD5输出128位的摘要,SHA-1输出160位的摘要。SHA-1比MD5更安全些,但计算起来比MD5要慢

二、.NET 使用 MD5、SHA1、SHA128、SHA512 报文摘要算法

 1 using System;2 using System.Security.Cryptography;3 using System.Text;4 5 namespace encryption.md56 {7     public class Md5Util8     {9         public enum MD
10         {
11             MD5,
12             SHA1,
13             SHA256,
14             SHA512,
15         }
16         private static HashAlgorithm CreateHashAlgorithm(MD sha)
17         {
18             switch (sha)
19             {
20                 case MD.MD5:
21                     return new MD5CryptoServiceProvider();
22                 case MD.SHA1:
23                     return SHA1.Create();
24                 case MD.SHA256:
25                     return SHA256.Create();
26                 case MD.SHA512:
27                     return SHA512.Create();
28             }
29             
30             throw new Exception($"The type does not exits,type:{sha}");
31         }
32 
33         /// <summary>
34         /// 获取指定byte数组的MD5
35         /// </summary>
36         /// <param name="source"></param>
37         /// <param name="encoding"><see cref="Encoding"/>默认值:UTF8</param>
38         /// <returns></returns>
39         public static byte[] GetMD5(byte[] source, MD sha=MD.MD5, Encoding encoding = null)
40         {
41             byte[] output = CreateHashAlgorithm(sha).ComputeHash(source);
42             return output;
43         }
44 
45         /// <summary>
46         /// 获取指定字符串的MD5
47         /// </summary>
48         /// <param name="source"></param>
49         /// <param name="encoding"><see cref="Encoding"/>默认值:UTF8</param>
50         /// <returns></returns>
51         public static byte[] GetMD5(string source, MD sha = MD.MD5, Encoding encoding = null)
52         {
53             if (encoding == null) encoding = Encoding.UTF8;
54             return GetMD5(encoding.GetBytes(source), sha, encoding);
55         }
56 
57 
58         /// <summary>
59         /// MD5 校验
60         /// </summary>
61         /// <param name="input">校验二进制</param>
62         /// <param name="hash">待比较的MD5 值</param>
63         /// <param name="encoding"></param>
64         /// <returns>true:相同;false:被纂改</returns>
65         public static bool VerifyMD5(byte[] input, byte[] hash, MD sha = MD.MD5, Encoding encoding = null)
66         {
67             if (encoding == null) encoding = Encoding.UTF8;
68             var buffer = GetMD5(input, sha,encoding);
69             if (Convert.ToBase64String(buffer) == Convert.ToBase64String(hash))
70             {
71                 return true;
72             }
73             return false;
74         }
75 
76         /// <summary>
77         /// MD5 校验
78         /// </summary>
79         /// <param name="input">校验字符串</param>
80         /// <param name="hash">待比较的MD5 值</param>
81         /// <param name="encoding"></param>
82         /// <returns>true:相同;false:被纂改</returns>
83         public static bool VerifyMD5(string input, byte[] hash, MD sha = MD.MD5, Encoding encoding = null)
84         {
85             if (encoding == null) encoding = Encoding.UTF8;
86             return VerifyMD5(encoding.GetBytes(input), hash, sha,encoding);
87         }
88     }
89 }

三、测试代码与结果

 1     static void Main()2     {3         {4             Console.WriteLine("-----------------------------------------------------生成MD5--------------------------------------------------");5             var input = "目前广泛应用的报文摘要算法有MD5[RFC1321]和安全散列算法1(SecureHashAlgorithm,SHA-1)。";6             Console.WriteLine($"内容:{input}");7             byte[] md5 = Md5Util.GetMD5(input);8             Console.WriteLine($"MD5:{Convert.ToBase64String(md5)}");9         }
10 
11         {
12             Console.WriteLine("-----------------------------------------------------MD5防篡改校验--------------------------------------------------");
13             var input = "https://docs.microsoft.com/zh-tw/dotnet/api/system.security.cryptography.md5?view=net-5.0";
14             Console.WriteLine($"内容:{input}");
15             byte[] md5 = Md5Util.GetMD5(input+"不一致");
16             Console.WriteLine($"MD5校验:{Md5Util.VerifyMD5(input, md5)}");
17         }
18 
19         {
20             Console.WriteLine("-----------------------------------------------------生成SHA512--------------------------------------------------");
21             var input = "目前广泛应用的报文摘要算法有MD5[RFC1321]和安全散列算法1(SecureHashAlgorithm,SHA-1)。";
22             Console.WriteLine($"内容:{input}");
23             byte[] md5 = Md5Util.GetMD5(input,Md5Util.MD.SHA512);
24             Console.WriteLine($"SHA512:{Convert.ToBase64String(md5)}");
25         }
26 
27         {
28             Console.WriteLine("-----------------------------------------------------SHA512防篡改校验--------------------------------------------------");
29             var input = "https://docs.microsoft.com/zh-tw/dotnet/api/system.security.cryptography.md5?view=net-5.0";
30             Console.WriteLine($"内容:{input}");
31             byte[] md5 = Md5Util.GetMD5(input, Md5Util.MD.SHA512);
32             Console.WriteLine($"SHA512校验:{Md5Util.VerifyMD5(input, md5, Md5Util.MD.SHA512)}");
33         }
34 
35         Console.ReadKey();
36     }

img

http://www.15wanjia.com/news/164912.html

相关文章:

  • 个人网站的设计与制作论文怎么才能搜索到自己做的网站
  • 网上书城网站开发意义游戏制作培训
  • 门户网站地方生活门户有哪些库尔勒网站建设推广
  • 淘宝做网站的公司手游平台
  • 佛山英文网建站设计方案流程图
  • 应用软件开发工程师什么网站程序适合做seo
  • 商城建设网站公司如何设计一个简单的网页
  • 沈阳网站哪家公司做的好宁波网站建设建站厂家
  • 域名和网站的关系网站的友情连接怎么做
  • 手机可以访问的网站怎么做湖北省住房建设部官方网站
  • 有个做h手游的网站黄页88企业名录
  • 做网站怎么连数据库wordpress 5.1如何更换编辑器
  • 淮北市建设安全监督站网站模板自助建站网站制作
  • 新乡市网站建设电脑培训班宁波网络推广咨询
  • 网站建设上海哪家公司好搭建网站工具
  • 网站的优化用什么软件下载服务器wordpress版本更新
  • 亚马逊网站特点电子商务学网站建设好吗
  • 做网站实训心得体会快速做网站前端的视频教程
  • 网站在线帮助如何设计建立网站的步骤是什么
  • 短视频网站的动画是怎么做的商务网站信息审核的重要性在于
  • 网站功能模块图中国十大黑科技
  • app开发网站模板系部网站开发项目的目的
  • 网站群建设报价婚庆设计效果图
  • 农药化肥网站建设金融行业做网站需要什么
  • 网站建设与管理大作业小企业网站怎么做
  • 手机网站样式代码湖南省郴州市汝城县
  • 网站建设盈利wordpress博客列表显示不出来
  • 潍坊网站排名wordpress仿微信播放器
  • 石家庄建站模板搭建手机端网站seo
  • 网站开发 流程做网站的一个黑点符号