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

株洲网站建设公司谷歌外贸seo

株洲网站建设公司,谷歌外贸seo,做58同城网站需要多少钱,公司网站功能性建设有哪些一、报文摘要算法基本概念 ​ 使用加密通常可达到报文鉴别的目的,因为伪造的报文解密后一般不能得到可理解的内容。但简单采用这种方法,计算机很难自动识别报文是否被篡改。另外,对于不需要保密而只需要报文鉴别的网络应用,对整个…

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

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

相关文章:

  • 铜陵高端网站建设中国最新领导班子
  • 凡科在线制作网站搭建一个app平台要多少钱
  • 网站建设中html下载seo优化方案项目策划书
  • 南通企业建站程序中国去中心化搜索引擎
  • 网站开发单位怎么做链接推广产品
  • wordpress动态模板seo搜索引擎优化是
  • wordpress会员可见seo博客
  • 接做室内效果图的网站佛山网站建设制作公司
  • 建设银行网站最近都打不开吗新闻网最新消息
  • 深圳网站建设计软文营销广告案例
  • 外国人做的关于中国的视频网站吗企业网络规划与设计
  • 赣州新闻最新消息龙岗seo优化
  • 阿里云网站备案拍照站长之家seo信息
  • 做招聘网站价格网站自动秒收录工具
  • 有限公司网站建设 中企动力佛山seo网站优化外包
  • 站长工具seo综合查询是什么意思教育培训网站大全
  • 百度搜索网站打开错误拉新推广一手接单平台
  • 半成品网站网络营销策划公司
  • 郑州专业网站建设搭建公司惠州百度seo哪里强
  • 响应式网站导航栏内容怎样打小广告最有效
  • 域名注册流程及费用哈尔滨seo关键词排名
  • 虾米音乐歌曲链接做qq音乐网站seo优化网络推广
  • 做城市门户网站怎么发展如何开网站呢
  • 看今天的新闻芭嘞seo
  • 长春怎么做网站黄页网推广服务
  • 北京木马工业设计长春seo关键词排名
  • phpmysql动态网站开发从入门到精通郑州网站seo推广
  • 做证明图片的网站长沙靠谱关键词优化公司电话
  • 网页浏览器怎么扫描二维码湖南优化推广
  • 做多语言网站教程域名注册免费