aescryptoserviceprovider在哪个dll里
展开全部
AesCryptoServiceProvider 类
.NET Framework 4.5 其他版本
使用高级加密标准 (AES) 算法的加密应用程序编程接口 (CAPI) 实现来执行对称加密和解密。
继承层次结构
System.Object
System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.Aes
System.Security.Cryptography.AesCryptoServiceProvider
命名空间: System.Security.Cryptography
程序集: System.Core(在 System.Core.dll 中)
语法
C#C++F#VB
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class AesCryptoServiceProvider : Aes
AesCryptoServiceProvider 类型公开以下成员。
构造函数
显示: 继承 保护
名称 说明
公共方法 AesCryptoServiceProvider 初始化 AesCryptoServiceProvider 类的新实例。
页首
属性
显示: 继承 保护
名称 说明
公共属性 BlockSize 获取或设置加密操作的块大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 FeedbackSize 获取或设置加密操作的反馈大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 IV 获取或设置对称算法的初始化向量 (IV)。 (继承自 SymmetricAlgorithm。)
公共属性 Key 获取或设置用于加密和解密的对称密钥。 (重写 SymmetricAlgorithm.Key。)
公共属性 KeySize 获取或设置密钥的大小(以位为单位)。 (重写 SymmetricAlgorithm.KeySize。)
公共属性 LegalBlockSizes 获取对称算法支持的块大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 LegalKeySizes 获取对称算法支持的密钥大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 Mode 获取或设置对称算法的运算模式。 (继承自 SymmetricAlgorithm。)
公共属性 Padding 获取或设置对称算法中使用的填充模式。 (继承自 SymmetricAlgorithm。)
页首
方法
显示: 继承 保护
名称 说明
公共方法 Clear 释放 SymmetricAlgorithm 类使用的所有资源。 (继承自 SymmetricAlgorithm。)
公共方法 CreateDecryptor() 使用当前的密钥和初始化向量 (IV) 创建对称 AES 解密器对象。 (重写 SymmetricAlgorithm.CreateDecryptor()。)
公共方法 CreateDecryptor(Byte[], Byte[]) 使用指定的密钥和初始化向量 (IV) 创建对称 AES 解密器对象。 (重写 SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])。)
公共方法 CreateEncryptor() 使用当前的密钥和初始化向量 (IV) 创建对称 AES 加密器对象。 (重写 SymmetricAlgorithm.CreateEncryptor()。)
公共方法 CreateEncryptor(Byte[], Byte[]) 使用指定的密钥和初始化向量 (IV) 创建对称加密器对象。 (重写 SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[])。)
公共方法 Dispose() 释放由 SymmetricAlgorithm 类的当前实例占用的所有资源。 (继承自 SymmetricAlgorithm。)
公共方法 Equals(Object) 确定指定的对象是否等于当前对象。 (继承自 Object。)
公共方法 GenerateIV 生成用于该算法的随机初始化向量 (IV)。 (重写 SymmetricAlgorithm.GenerateIV()。)
公共方法 GenerateKey 生成用于该算法的随机密钥。 (重写 SymmetricAlgorithm.GenerateKey()。)
公共方法 GetHashCode 作为默认哈希函数。 (继承自 Object。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 ValidKeySize 确定指定的密钥大小对当前算法是否有效。 (继承自 SymmetricAlgorithm。)
页首
备注
说明说明
应用到HostProtectionAttribute 此类型或成员的特性具有以下Resources 属性值:MayLeakOnAbort。这HostProtectionAttribute 不影响桌面应用程序(通常通过双击图标、键入命令或在浏览器中输入 URL 来启动这些应用程序)。有关更多信息,请参见HostProtectionAttribute 类或SQL Server 编程和宿主保护特性.
示例
下面的示例演示如何使用 AesCryptoServiceProvider 类加密和解密示例数据。
C#VB
using System;
using System.IO;
using System.Security.Cryptography;
namespace Aes_Example
{
class AesExample
{
public static void Main()
{
try
{
string original = "Here is some data to encrypt!";
// Create a new instance of the AesCryptoServiceProvider
// class. This generates a new key and initialization
// vector (IV).
using (AesCryptoServiceProvider myAes = new AesCryptoServiceProvider())
{
// Encrypt the string to an array of bytes.
byte[] encrypted = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV);
// Decrypt the bytes to a string.
string roundtrip = DecryptStringFromBytes_Aes(encrypted, myAes.Key, myAes.IV);
//Display the original data and the decrypted data.
Console.WriteLine("Original: {0}", original);
Console.WriteLine("Round Trip: {0}", roundtrip);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
{
// Check arguments.
if (plainText == null || plainText.Length <= 0)
throw new ArgumentNullException("plainText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("Key");
byte[] encrypted;
// Create an AesCryptoServiceProvider object
// with the specified key and IV.
using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}
}
}
// Return the encrypted bytes from the memory stream.
return encrypted;
}
static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV)
{
// Check arguments.
if (cipherText == null || cipherText.Length <= 0)
throw new ArgumentNullException("cipherText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("IV");
// Declare the string used to hold
// the decrypted text.
string plaintext = null;
// Create an AesCryptoServiceProvider object
// with the specified key and IV.
using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt.ReadToEnd();
}
}
}
}
.NET Framework 4.5 其他版本
使用高级加密标准 (AES) 算法的加密应用程序编程接口 (CAPI) 实现来执行对称加密和解密。
继承层次结构
System.Object
System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.Aes
System.Security.Cryptography.AesCryptoServiceProvider
命名空间: System.Security.Cryptography
程序集: System.Core(在 System.Core.dll 中)
语法
C#C++F#VB
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class AesCryptoServiceProvider : Aes
AesCryptoServiceProvider 类型公开以下成员。
构造函数
显示: 继承 保护
名称 说明
公共方法 AesCryptoServiceProvider 初始化 AesCryptoServiceProvider 类的新实例。
页首
属性
显示: 继承 保护
名称 说明
公共属性 BlockSize 获取或设置加密操作的块大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 FeedbackSize 获取或设置加密操作的反馈大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 IV 获取或设置对称算法的初始化向量 (IV)。 (继承自 SymmetricAlgorithm。)
公共属性 Key 获取或设置用于加密和解密的对称密钥。 (重写 SymmetricAlgorithm.Key。)
公共属性 KeySize 获取或设置密钥的大小(以位为单位)。 (重写 SymmetricAlgorithm.KeySize。)
公共属性 LegalBlockSizes 获取对称算法支持的块大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 LegalKeySizes 获取对称算法支持的密钥大小(以位为单位)。 (继承自 SymmetricAlgorithm。)
公共属性 Mode 获取或设置对称算法的运算模式。 (继承自 SymmetricAlgorithm。)
公共属性 Padding 获取或设置对称算法中使用的填充模式。 (继承自 SymmetricAlgorithm。)
页首
方法
显示: 继承 保护
名称 说明
公共方法 Clear 释放 SymmetricAlgorithm 类使用的所有资源。 (继承自 SymmetricAlgorithm。)
公共方法 CreateDecryptor() 使用当前的密钥和初始化向量 (IV) 创建对称 AES 解密器对象。 (重写 SymmetricAlgorithm.CreateDecryptor()。)
公共方法 CreateDecryptor(Byte[], Byte[]) 使用指定的密钥和初始化向量 (IV) 创建对称 AES 解密器对象。 (重写 SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])。)
公共方法 CreateEncryptor() 使用当前的密钥和初始化向量 (IV) 创建对称 AES 加密器对象。 (重写 SymmetricAlgorithm.CreateEncryptor()。)
公共方法 CreateEncryptor(Byte[], Byte[]) 使用指定的密钥和初始化向量 (IV) 创建对称加密器对象。 (重写 SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[])。)
公共方法 Dispose() 释放由 SymmetricAlgorithm 类的当前实例占用的所有资源。 (继承自 SymmetricAlgorithm。)
公共方法 Equals(Object) 确定指定的对象是否等于当前对象。 (继承自 Object。)
公共方法 GenerateIV 生成用于该算法的随机初始化向量 (IV)。 (重写 SymmetricAlgorithm.GenerateIV()。)
公共方法 GenerateKey 生成用于该算法的随机密钥。 (重写 SymmetricAlgorithm.GenerateKey()。)
公共方法 GetHashCode 作为默认哈希函数。 (继承自 Object。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 ValidKeySize 确定指定的密钥大小对当前算法是否有效。 (继承自 SymmetricAlgorithm。)
页首
备注
说明说明
应用到HostProtectionAttribute 此类型或成员的特性具有以下Resources 属性值:MayLeakOnAbort。这HostProtectionAttribute 不影响桌面应用程序(通常通过双击图标、键入命令或在浏览器中输入 URL 来启动这些应用程序)。有关更多信息,请参见HostProtectionAttribute 类或SQL Server 编程和宿主保护特性.
示例
下面的示例演示如何使用 AesCryptoServiceProvider 类加密和解密示例数据。
C#VB
using System;
using System.IO;
using System.Security.Cryptography;
namespace Aes_Example
{
class AesExample
{
public static void Main()
{
try
{
string original = "Here is some data to encrypt!";
// Create a new instance of the AesCryptoServiceProvider
// class. This generates a new key and initialization
// vector (IV).
using (AesCryptoServiceProvider myAes = new AesCryptoServiceProvider())
{
// Encrypt the string to an array of bytes.
byte[] encrypted = EncryptStringToBytes_Aes(original, myAes.Key, myAes.IV);
// Decrypt the bytes to a string.
string roundtrip = DecryptStringFromBytes_Aes(encrypted, myAes.Key, myAes.IV);
//Display the original data and the decrypted data.
Console.WriteLine("Original: {0}", original);
Console.WriteLine("Round Trip: {0}", roundtrip);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV)
{
// Check arguments.
if (plainText == null || plainText.Length <= 0)
throw new ArgumentNullException("plainText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("Key");
byte[] encrypted;
// Create an AesCryptoServiceProvider object
// with the specified key and IV.
using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for encryption.
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
encrypted = msEncrypt.ToArray();
}
}
}
// Return the encrypted bytes from the memory stream.
return encrypted;
}
static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV)
{
// Check arguments.
if (cipherText == null || cipherText.Length <= 0)
throw new ArgumentNullException("cipherText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("IV");
// Declare the string used to hold
// the decrypted text.
string plaintext = null;
// Create an AesCryptoServiceProvider object
// with the specified key and IV.
using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider())
{
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt.ReadToEnd();
}
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询