这个命名空间包含了能够实现安全解决方案的类,例如:
我会将本文的内容限制在加密和解密上,但是要记住的是,这只是整个难题的一部分;一个真正安全的解决方案还会使用其他的部分。我们的例子就从一个本地文本文件的加密开始,然后再转移到更加复杂的、互连计算机之间信息的加密上。
要加密一个本地文本文件,我们要使用一种对称加密算法:称其为对称是因为相同的密钥和初始化向量(IV)既要被用来加密又要被用来解密一段数据。(IV和密钥的关系在.NET文档的加密概要部分有解释。)
.NET对对称算法的实现来源于一个通用的抽象基类——SymmetricAlgorithm,其主要用途是让程序员能够把每个专门的算法——DES、TripleDES和Rijndael——以相同的方式处理。这些算法在如何加密数据上存在着不同,但是公共接口是相同的。这并不意味着所有的算法都相同。例如,你可以通过名字猜测到TripleDES是一个比DES更加安全的后继者。
由于相同的密钥会被用来加密和解密数据,所以对称算法最适合于密钥不需要公开的场合。网络加密则需要非对称和对称算法的组合,你会在后面看到这一点。但是首先让我们用好对称算法。