.NET平台开源项目速览(12)哈希算法集合类库HashLib
閱讀目錄
- 1.哈希算法介紹
- 2.HashLib功能介紹
????.NET的System.Security.Cryptography命名空間本身是提供加密服務(wù),散列函數(shù),對稱與非對稱加密算法等功能。實際上,大部分情況下已經(jīng)滿足了需求,而且.NET實現(xiàn)的都是目前國際上比較權(quán)威的,標準化的算法,所以還是安全可靠的。但也有一些場合,需要自己實現(xiàn)一些安全散列算法。不僅僅是學(xué)習(xí),也可以進行測試以及相關(guān)研究。而今天要介紹的正式這樣一個包括了目前幾乎所有散列函數(shù)算法實現(xiàn)的.NET開源組件,大家可以實際使用,查看或者修改等。滿足更多不同人,不同層次的需求。那就看看相關(guān)基礎(chǔ)知識以及組件的介紹。
NET開源目錄:【目錄】本博客其他.NET開源項目文章目錄
本文原文地址:.NET平臺開源項目速覽(11)KwCombinatorics排列組合使用案例(1)
回到目錄1.哈希算法介紹
????哈希函數(shù),也就是通常所說的散列函數(shù),常用的就是MD5,SHA了。哈希函數(shù)的作用就是相當(dāng)于“指紋”,它是不可逆的,可以沒有密鑰,也可以有密鑰。給定一個任意長度的消息M,都可以產(chǎn)生固定長度的散列值m。
????散列函數(shù)必須滿足的特性就是:計算M的散列值要快,反之則是相當(dāng)困難的,且找到2個具有相同散列值的消息是困難的。一般用于防止篡改,比如很多大型的軟件下載的時候,都會在網(wǎng)站公布文件的散列值,下載后就可以根據(jù)工具計算其散列值對比,看文件是否正確或者遭到修改。
????哈希完全不等于加密,很多時候開發(fā)人員都對用戶表中的密碼進行哈希后保存,實際上不叫做加密,只是相當(dāng)于把密碼的“特征指紋”保存下來,而對非法攻擊者來說,在不知道真實的“密碼”的情況下,得到有相同指紋的密碼是極為困難的。
????例如我們在微軟官方下載文件的時候,會提供一個哈希驗證碼,目的就是讓你下載后,進行校驗,防止文件被修改。確保你下載到的文件是合法以及官方版本。
回到目錄2.HashLib功能介紹
????這里可以找到大量的哈希算法的C#實現(xiàn)。包括SHA3以及候選算法。你可以使用它來對文件,數(shù)據(jù)流以及常用的數(shù)據(jù)類型進行哈希驗證。支持的算法有:?
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
????官方網(wǎng)站:http://hashlib.codeplex.com/
? ? 使用比較簡單,參考官方例子即可。
?
本文轉(zhuǎn)自葉小釵 h數(shù)據(jù)之巔博客園博客,原文鏈接:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_HashLib.html,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的.NET平台开源项目速览(12)哈希算法集合类库HashLib的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话西游2龙族技能
- 下一篇: .NET平台开发必须掌握的XML知识(二