.net 密码学

 

 

System.Security.Cryptography 命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。

 

  • 随机数生成
  • 散列算法 (MD5/SHA1/ RIPEMD160/ SHA256 / SHA384等 )
  • 对称(私钥)加密算法 (DES/TRI-DES等)
  • 非对称加密算法(RSA/DSA)
  • 数字(签名)加密算法

 

随机数生成演练。关键字 Random类和System.Security.Cryptography.RNGCryptoServiceProvider 类 演示代码:http://download.csdn.net/source/2471633

性能对比:http://hi.baidu.com/wingingbob/blog/item/0492812a4853da2bd42af119.html

结论:Random类已经能够满足日常使用且性能高,推荐使用。

Hash算法也称作散列算法或报文摘要(digital digest)。Hash算法将任意长度数据转化为固定长度字符序列。Hash结果是始终维一的。任意二个序列的Hash结果是不同的。Hash结果亦称为数字指纹(Finger Print),它有固定的长度,且相同的明文摘要必定一致。这样这串摘要使可成为验证明文是否是"真身"的"指纹"了。Hash类如下:

  • HMACSHA1.
  • MACTripleDES.
  • MD5CryptoServiceProvider.
  • RIPEMD160.
  • SHA1Managed.
  • SHA256Managed.
  • SHA384Managed.
  • SHA512Managed.

图示.net 密码学_第1张图片

  

对称(私钥)加密算法

加密算法的一般类型有对称和非对称两种。对称算法使用相同的密钥来加密和解密数据。对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个推导出另一个。在此算法中,加、解密双方所用的密钥都要保守秘密。由于计算速度快,对称加密算法被广泛应用于大量数据,如文件的加密过程中。
使用分组密码算法数字签名常用的加密标准有:DES,Tripl-DES,RC2,RC4,CAST等。

.NET Framework提供了以下类来实现对称加密算法:

  • AesManaged(在 .NET Framework 3.5 版中引入)。

  • DESCryptoServiceProvider

  • RC2CryptoServiceProvider

  • RijndaelManaged

  • TripleDESCryptoServiceProvider


     

图示.net 密码学_第2张图片

公共钥匙加密算法 (非对称密钥密码算法)
公共钥匙加密算法又称为非对称密钥密码算法。它使用到两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。

使用公钥密码算法进行数字签名通用的加密标准有: RSA,DSA等。

.NET Framework 提供了以下类来实现公钥加密算法:

 

 

 

图示.net 密码学_第3张图片

数字签名
数字签名是指使用密码算法对待发的数据(报文、票证等)进行加密处理,生成一段信息,附着在原文上一起发送,这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文真伪。
目的:提供数据完整性保护和抗否认功能。

.NET Framework提供了以下类来实现数字签名加密算法

 

  • DSACryptoServiceProvider
  • RSACryptoServiceProvider
  • ECDiffieHellmanCng (.net3.5)
  • ECDsaCng (.net3.5)

 

总结: 算法效率: 散列算法 > 对称算法 >  非对称算法

资源:MSDN加密服务概述与相关示例:http://msdn.microsoft.com/zh-cn/library/92f9ye3s.aspx

 

你可能感兴趣的:(.net 密码学)