.NET提供的加密算法概述
加密數據可以使用對稱加密或非對稱加密算法,使用對稱加密比非對稱密鑰快得多,但對稱密鑰需要解決安全交換密鑰的問題。在.NET Framework中,可以使用System.Security.Cryptography命名空間中的類來加密。它實現了幾個對稱和非對稱算法。從.NET 3.4開始,一些新類以Cng作為前綴或后綴,表示Cryptography Next Generation,用于采用Windows NT 6.0或更高內核版本的操作系統(Vista、Win7、Win2008、Win8)。這個API可以使用基于提供程序的模型,編寫獨立于算法的程序。
下面列出System.Security.Cryptography命名空間中的加密類及其功能。沒有Cng、Managed或 CryptoServiceProvider后綴的類是抽象基類,例如MD5。Managed后綴表示這個算法用托管代碼實現,其他類可能封裝了內部的 Windows API調用。CryptoServiceProvider后綴用于實現了抽象基類的類,Cng后綴用于利用新Cryptography CNG API的類,它只能用于指定版本的操作系統。
類別 | 類 | 說明 |
散
列 |
MD5, MD5Cng SHA1, SHA1Managed, SHA1Cng SHA256, SHA256Managed, SHA256Cng SHA384, SHA384Managed, SHA384Cng SHA512, SHA512Managed, SHA512Cng |
散列算法的目標是從任意長度的二進制字符串中創建一個長度固定的散列值。這些算法和數字簽名一起用于保證數據的完整性。如果再次散列相同的二進制字符串,會返回相同的散列結果。MD5(Message Digest Algorithm 5)是由RSA實驗室開發的,比SHA1快。SHA1在抵御暴力攻擊方面比較強大。SHA算法是由美國國家安全局(NSA)設計的。MD5使用128位的散列值,SHA1使用160位。其它SHA算法在其名稱中包含了散列長度。SHA512是這些算法中最強大的,其散列長度為512位,也是最慢的 |
對
稱 |
DES, DESCryptoServiceProvider TripleDES, TripleDESCryptoServiceProvider AES, AESCryptoServiceProvider, AESManaged RC2, RC2CryptoServiceProvider Rijandel, RijandelManaged |
對稱密鑰算法使用相同的密鑰進行數據的加密和解密。現在認為DES(Data Encryption Standard)是不安全的,因為它只使用56位的密鑰,可以在不超過24小時的時間內破解。Triple DES是DES的繼任者,其密鑰長度是168位,但它提供的有效安全性只有112位。AES(Advanced Encrytion Standard)是美國政府采用的加密標準,其密鑰長度是128、192或256位。Rijandel非常類似于AES,只是在密鑰長度方面的選項較多。 |
非 對 稱 |
DSA, DSACryptoServiceProvider ECDsa, ECDsaCng ECDiffieHellman, ECDiffieHellmanCng RSA, RSACryptoServiceProvider |
非對稱算法使用不同的密鑰進行加密和解密。RSA(Rivest, Shamir, Adleman)是第一個用于簽名和加密的算法。這個算法廣泛用于電子商務協議。DSA(Digital Signature Algorithm)是美國聯邦數字簽名的政府標準。ECDsa(Elliptic Curve DSA)和ECDiffieHellman使用基于橢圓曲線組的算法。這些算法比較安全,且使用較短的密鑰長度。例如,DSA的密鑰長度為1024位,其安全性類似于160位的ECDsa。因此,ECDsa比較快。ECDiffieHellman算法用于以安全的方式在公共信道中互換私鑰。 |
補充一下吧,關于性能方面,就同一種算法,有CryptoServiceProvider、Managed、Cng三種實現方式,我現在測試了散列中的方法,其中MD5是沒有Managed實現的,計算“Test”字符串的散列值10萬次:
可以看出。Cng算法的速度是最差的,而Csp居中水平,Managed實現則速度非常快,另外,如果加大SHA算法的位數的話,當到384位時差別就不再明顯,而且Csp算法所需時間成為了最少的方式,這個我認為是操作系統API調用所形成的優勢:
原文鏈接:http://www.cnblogs.com/lekko/archive/2012/09/11/2680288.html