DotNet中的加密
.NET中的加密
System.Security.Cryptography命名空间提供加密服务,包括数据的安全编码和解码、哈希、随机数生成以及消息身份验证。
.NET Framework 提供多种标准密码算法的实现。因为具有良好定义的继承层次结构,所以可轻松扩展对这些算法,该层次结构包含定义基本算法类型(对称、不对称以及哈希算法)的抽象类和算法类。
| 表 1:显示 .NET Framework 为之提供实现“现成”类的算法。 | ||
| 对称算法 | 不对称算法 | 哈希算法 |
|
DES(数据加密标准) |
DSA(数据签名算法) |
HMAC SHA1(使用 SHA1 哈希算法且基于哈希的消息身份验证代码) |
|
TripleDES(三重数据加密标准) |
RSA |
MAC Triple DES(使用 Triple DES 消息身份验证代码) |
|
Rijndael |
MD5 |
|
|
RC2 |
SHA1, SHA256, SHA384, SHA512 |
|
对称算法支持
.NET 提供以下实现类,这些类提供对称、机密密钥加密算法:
| • |
DESCryptoServiceProvider |
| • |
RC2CryptoServiceProvider |
| • |
RijndaelManaged |
| • |
TripleDESCryptoServiceProvider |
注 以“CryptoServiceProvider”结尾的类是包装类,它们使用加密服务提供程序 (CSP) 的基本服务;以“Managed”结尾的类在托管代码中实现。
图 2 显示采用继承层次结构的 .NET Framework。算法类型基类(如 SymmetricAlgorithm)是抽象类。一套抽象的算法类派生自抽象类型基类。算法实现类提供了选定算法的具体实现,例如,DES、Triple-DES、Rijndael 和 RC2。

图 2. 对称加密类继承层次结构
不对称算法支持
.NET 通过抽象基类 (System.Security.Crytography.AsymmetricAlgorithm) 提供以下不对称(公共/专用密钥)加密算法:
| • |
DSACryptoServiceProvider |
| • |
RSACryptoServiceProvider |
这些算法用于数字签名和加密数据。图 3 显示继承层次结构。

图 3. 不对称加密类继承层次结构
哈希算法支持
.NET 提供以下哈希算法:
| • |
SHA1, SHA256, SHA384, SHA512 MD5 |
| • |
HMACSHA (Keyed Hashed algorithm) |
| • |
MACTripleDES(加密的哈希算法) |
图 4 显示哈希算法类的继承结构层次。

图 4. 哈希加密类继承结构层次
浙公网安备 33010602011771号