SHA1哈希算法

SHA1哈希算法是一个用来进行数字签名的算法,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要,这个消息摘要可以用来验证数据的完整性。SHA1有一些特性,一是不可以从消息摘要中复原信息,另外一个就是不同的消息会产生不同的消息摘要。所以如果在传输的过程中,数据发生了丢失或者损坏,通过消息摘要就可以看出来。

  在.NET中对程序集进行强签名的时候,需要生成一个公钥,通过公钥生成一个公钥标记的时候也会用到SHA1算法。这个算法的具体原理,可以在网上找到,这里介绍一下用.NET提供的类库来使用这个算法。主要有四种使用方式。

1.通过SHA1CryptoServiceProvider

System.Security.Cryptography.SHA1 sha = new System.Security.Cryptography.SHA1CryptoServiceProvider();

//strSource为传入的字符串,字节数组为加密后的
byte[] bytResult = sha.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource));
2.通过SHA1类

System.Security.Cryptography.SHA1 sha = System.Security.Cryptography.SHA1.Create();

//注意编码UTF8、UTF7、Unicode等的选择 
byte[] bytResult = sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource));
3.通过HashPasswordForStoringInConfigFile方法

return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "SHA1");
4.使用SHA1Managed

SHA1Managed sha = new SHA1Managed();

byte[] bytResult = sha.ComputeHash(strSource);
四种方法生成的结果都一样,唯一需要注意的就是传入的字符串的编码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 8,269评论 0 14
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 9,479评论 2 8
  • 晚饭后,我们四个女同事坐着闲聊。刚开始聊到了前两天在单位附近出现并被打死的一条小蛇,其中最显眼的是它的腹部整条是红...
    活出自我0812阅读 3,030评论 0 0
  • 进入影院之前,私以为:它——只是一部喜剧,我——只为搞笑而去。看完影片之后,我发现,眼泪还是如N年以前一样的——咸...
    不止初心阅读 4,429评论 0 2

友情链接更多精彩内容