阅读目录

  • 1.哈希算法介绍
  • 2.HashLib功能介绍

.NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能。实际上,大部分情况下已经满足了需求,而且.NET实现的都是目前国际上比较权威的,标准化的算法,所以还是安全可靠的。但也有一些场合,需要自己实现一些安全散列算法。不仅仅是学习,也可以进行测试以及相关研究。而今天要介绍的正式这样一个包括了目前几乎所有散列函数算法实现的.NET开源组件,大家可以实际使用,查看或者修改等。满足更多不同人,不同层次的需求。那就看看相关基础知识以及组件的介绍。

NET开源目录:【目录】本博客其他.NET开源项目文章目录

本文原文地址:.NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

回到目录

1.哈希算法介绍

哈希函数,也就是通常所说的散列函数,常用的就是MD5,SHA了。哈希函数的作用就是相当于“指纹”,它是不可逆的,可以没有密钥,也可以有密钥。给定一个任意长度的消息M,都可以产生固定长度的散列值m。

散列函数必须满足的特性就是:计算M的散列值要快,反之则是相当困难的,且找到2个具有相同散列值的消息是困难的。一般用于防止篡改,比如很多大型的软件下载的时候,都会在网站公布文件的散列值,下载后就可以根据工具计算其散列值对比,看文件是否正确或者遭到修改。

哈希完全不等于加密,很多时候开发人员都对用户表中的密码进行哈希后保存,实际上不叫做加密,只是相当于把密码的“特征指纹”保存下来,而对非法攻击者来说,在不知道真实的“密码”的情况下,得到有相同指纹的密码是极为困难的。

例如我们在微软官方下载文件的时候,会提供一个哈希验证码,目的就是让你下载后,进行校验,防止文件被修改。确保你下载到的文件是合法以及官方版本。

回到目录

2.HashLib功能介绍

这里可以找到大量的哈希算法的C#实现。包括SHA3以及候选算法。你可以使用它来对文件,数据流以及常用的数据类型进行哈希验证。支持的算法有:

1.非加密的32位哈希算法:AP, BKDR, Bernstein, Bernstein1, DEK, DJB, ELF, FNV, FNV1a, JS, Jenkins3, Murmur2, Murmur3, OneAtTime, PJW, RS, Rotating, SDBM, ShiftAndXor, SuperFast

2.非加密的64位哈希算法:FNV, FNV1a, Murmur2, SipHash

3.非加密的128位哈希算法:Murmur3

4.校验和算法:Adler32, CRC32, CRC64

5.所有的算法都基于System.Security.Cryptography命名空间:MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512

6.加密算法:GOST, Grindahl, HAS160, Haval, MD2, MD4, MD5, Panama, RadioGatun, RIPEMD, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA0, SHA1, SHA224, SHA256, SHA384, SHA512, Snefru, Tiger, Tiger2, Whirlpool

7.SHA3及SHA2候选算法:Blake, BlueMidnightWish, CubeHash, Echo, Fugue, Groestl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite3, SIMD, Skein

官方网站:http://hashlib.codeplex.com/

使用比较简单,参考官方例子即可。

本文转自叶小钗 h数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_HashLib.html,如需转载请自行联系原作者

.NET平台开源项目速览(12)哈希算法集合类库HashLib相关推荐

  1. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    阅读目录 1.KwCombinatorics基本介绍 2.足球彩票排列组合应用 3.排列组合生成代码与测试 今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinator ...

  2. .NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件

    如果用知乎,可以关注专栏:.NET开源项目 记得5年前开始拼命翻读X组件的源码,特别是XCode,但对Newlife.Core 的东西了解很少,最多只是会用用,而且用到的只是九牛一毛.里面好用的东西太 ...

  3. .NET平台开源项目速览(2)Compare .NET Objects对象比较组件

    原文:.NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览今天介绍一款小巧强大的对象比较组件.可以更详细的获取2个对象的差别,并记录具体差别,比 ...

  4. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    原文:.NET平台开源项目速览(1)SharpConfig配置文件读写组件 在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.Config ...

  5. .NET平台开源项目速览(17)FluentConsole让你的控制台酷起来

    从该系列的第一篇文章 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 开始,不知不觉已经到第17篇了.每一次我们都是介绍一个小巧甚至微不足道的.NET平台的开源软件,或者学习,或 ...

  6. .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Expression Evaluator验证组件.那里只是概述了一下,并没有对其使用和强大功能做 ...

  7. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    .NET平台开源项目速览(4).NET文档生成工具ADB及使用 原文:.NET平台开源项目速览(4).NET文档生成工具ADB及使用 很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习 ...

  8. .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB

    今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...

  9. .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

    晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下. 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目 ...

最新文章

  1. 解决Flash影片中的图片抖动锯齿
  2. How to Pronounce BEAUTIFUL
  3. 【es】es Plugin 组件加载 PluginsService
  4. opencv ubuntu 汉字_OpenCV在ubuntu下的编译
  5. 并发机制:CSP vs Actor模型以及Golang实现
  6. 12.企业安全建设指南(金融行业安全架构与技术实践) --- 移动应用安全
  7. (转)扰码Scrambling和扩频码(PN码)的区别
  8. word2010怎样显示分节符?
  9. VBA金额转换中文大写(原创新解版)
  10. Android O、N版本修改dex2oat编译选项,减少占用ROM空间或者加快安装速度
  11. ORAN C平面 Section Type 6
  12. excel自动翻译-excel一键自动翻译免费
  13. 手把手教你用SetWindowsHookEx做一个键盘记录器
  14. 王者荣耀服务器维护七月,《王者荣耀》7.28不停服维护更新攻略教程 7月28日更新公告...
  15. 记录:关于Win10系统中Microsoft Edge上的网页如何滚动截屏?
  16. 五、原码、反码和补码
  17. uniPaas入门(magic最新版本改名叫uniPaas,unipaas也就是以前的magic)
  18. 【STM32学习】(21)STM32实现步进电机
  19. springBoot启动失败Caused by: java.lang.ClassNotFoundException: org.springframework.http.MediaType
  20. Xilinx的智能门控时钟技术你了解吗?

热门文章

  1. C# WinForm开发系列 - ToolBar/OutlookBar/Tab/Wizard(转载)
  2. 通用函数get和set
  3. Socket模型详解
  4. 定义坐标系-尚未成功
  5. C++ 预编译头文件
  6. 校验金额、大小写字母、大写字母、合法uri、email
  7. SAwUML – UML-based, contractual software architectures and their formal analysis using SPIN
  8. 关于Promise.all
  9. ubuntu15.10英文系统中文输入法配置 fcitx
  10. winform 消息通讯组件实习