aescryptoserviceprovider在哪个dll里

 我来答
城南明月羿当年
推荐于2016-05-12 · 知道合伙人生活技巧行家
城南明月羿当年
知道合伙人生活技巧行家
采纳数:24666 获赞数:123229
计算机爱好者

向TA提问 私信TA
展开全部
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();
}
}
}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式