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
提供数据保护程序的基类。