首页 > 学院 > 开发设计 > 正文

C#加解密算法

2019-11-17 02:26:41
字体:
来源:转载
供稿:网友

C#加解密算法

先附上源码

加密解密算法目前已经应用到我们生活中的各个方面

加密用于达到以下目的:

  • 保密性:帮助保护用户的标识或数据不被读取。

  • 数据完整性:帮助保护数据不被更改。

  • 身份验证:确保数据发自特定的一方。

  • 不可否认性:防止特定的一方否认发送过消息。

为了达到这些目的,我们可以使用以下做法:

私钥加密(对称加密)

对数据执行转换,使第三方无法读取该数据。 此类型的加密使用单个共享的机密密钥来加密和解密数据。

公钥加密(不对称加密)

对数据执行转换,使第三方无法读取该数据。 此类加密使用公钥/私钥对来加密和解密数据。

加密签名

通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。 此过程还使用哈希函数。

加密哈希

将数据从任意长度映射为定长字节序列。 哈希在统计上是唯一的;不同的双字节序列不会哈希为同一个值。

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

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

  • DESCryptoServicePRovider .

  • HMACSHA1 (从技术上讲,这是一种私钥算法,因为它表示结合使用加密哈希函数和私钥计算的消息身份验证代码。 请参见本主题后面的哈希值。)

  • RC2CryptoServiceProvider .

  • RijndaelManaged .

  • TripleDESCryptoServiceProvider .

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

  • DSACryptoServiceProvider

  • RSACryptoServiceProvider

  • ECDiffieHellman (基类)

  • ECDiffieHellmanCng

  • ECDiffieHellmanCngPublicKey (基类)

  • ECDiffieHellmanKeyDerivationFunction (基类)

  • ECDsaCng

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

  • DSACryptoServiceProvider

  • RSACryptoServiceProvider

  • ECDsa (基类)

  • ECDsaCng

.NET Framework 提供的以下类实现了哈希算法:

  • HMACSHA1 .

  • MACTripleDES .

  • md5CryptoServiceProvider .

  • RIPEMD160 .

  • SHA1Managed .

  • SHA256Managed .

  • SHA384Managed .

  • SHA512Managed .

System.Security.Cryptography 命名空间

说明
公共类Aes 表示高级加密标准 (AES) 的所有实现都必须从中继承的抽象基类。
公共类AesCryptoServiceProvider 使用高级加密标准 (AES) 算法的加密应用程序编程接口 (CAPI) 实现来执行对称加密和解密。
公共类AesManaged 提供高级加密标准 (AES) 对称算法的托管实现。
公共类AsnEncodedData 表示 Abstract Syntax Notation One (ASN.1) 编码数据。
公共类AsnEncodedDataCollection 表示 AsnEncodedData 对象的集合。 此类不能被继承。
公共类AsnEncodedDataEnumerator 提供在 AsnEncodedDataCollection 对象中导航的能力。 此类不能被继承。
公共类AsymmetricAlgorithm 表示所有非对称算法的实现都必须从中继承的抽象基类。
公共类AsymmetricKeyExchangeDeformatter 表示所有非对称密钥交换反格式化程序均从中派生的基类。
公共类AsymmetricKeyExchangeFormatter 表示所有非对称密钥交换格式化程序均从中派生的基类。
公共类AsymmetricSignatureDeformatter 表示所有不对称签名反格式化程序实现均从中派生的抽象基类。
公共类AsymmetricSignatureFormatter 表示所有不对称签名格式化程序实现均从中派生的基类。
公共类CngAlgorithm 封装加密算法的名称。
公共类CngAlgorithmGroup 封装加密算法组的名称。
公共类CngKey 定义与下一代加密技术 (CNG) 对象一起使用的密钥的核心功能。
公共类CngKeyBlobFormat 指定与 Microsoft 下一代加密技术 (CNG) 对象一起使用的密钥 BLOB 格式。
公共类CngKeyCreationParameters 包含密钥创建的高级属性。
公共类CngPropertyCollection 提供下一代加密技术 (CNG) 属性的强类型集合。
公共类CngProvider 封装与下一代加密技术 (CNG) 对象一起使用的密钥存储提供程序 (KSP) 的名称。
公共类CngUIPolicy 为用户界面 (UI) 封装可选配置参数,当您访问受保护的密钥时,下一代加密技术 (CNG) 将显示这些配置参数。
公共类CryptoAPITransform 执行数据的加密转换。 此类不能被继承。
公共类CryptoConfig 访问加密配置信息。
公共类CryptographicAttributeObject 包含一个类型和与该类型相关联的值的集合。
公共类CryptographicAttributeObjectCollection 包含 CryptographicAttributeObject 对象的集合。
公共类CryptographicAttributeObjectEnumerator 为 CryptographicAttributeObjectCollection 集合提供枚举功能。 此类不能被继承。
公共类CryptographicException 当加密操作中出现错误时引发的异常。
公共类CryptographicUnexpectedOperationException 当加密操作中出现意外操作时引发的异常。
公共类CryptoStream 定义将数据流链接到加密转换的流。
公共类CspKeyContainerInfo 提供有关加密密钥对的附加信息。 此类不能被继承。
公共类CspParameters 包含传递给执行加密计算的加密服务提供程序 (CSP) 的参数。 此类不能被继承。
公共类DataProtector 提供数据保护程序的基类。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表