对称算法示例

更新:2007 年 11 月

此示例使用 RijndaelTripleDESCryptoServiceProvider 类实现对称(密钥)加密,如 加密概述 中所述。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  • 按 F5。

演示

SampleCrypto 类封装加密算法、salt 和初始化向量 (IV),以及定义一个加密文件的加密和解密例程。该构造函数带有一个用于确定加密类型(Rijndael 或 TripleDES)的参数。该类中的对应字段 crpSym 为抽象类型 SymmetricAlgorithm。它被设置为 Rijndael 类或 TripleDESCryptoServiceProvider 类的实例。CreateSaltIVFile 方法将 salt 和 IV 值保存到 .dat 文件中。Decrypt 和 Encrypt 方法处理在 SourceFileName 属性中指定的源文件。

加载窗体时会创建 SampleCrypto 类的一个实例。窗体上的控件演示 SampleCrypto 类的方法和属性。选中“Encrypt with Password”(用密码加密)控件时,不会自动生成和设置密钥,而是从已“salted”的密码中派生一个。而且,salt 和初始化向量 (IV) 保留为对 .dat 文件不加密。这样,您就知道如何安全给某人发送文档:可以通过不安全的网络发送加密文档,可以使用非对称(或公钥)加密安全地传输 .dat 文件和密码。这种加密类型是最安全的加密形式,但处理时间长得多。这就是为什么这种加密方法通常用于较小的项(如密钥、salt/IV 文件或密码)的原因。

请参见

概念

.NET Framework 加密模型

参考

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV