AesManaged Klasa

Definicja

Przestroga

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

Zapewnia zarządzaną implementację algorytmu symetrycznego w warstwie Advanced Encryption Standard (AES).

[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class AesManaged : System.Security.Cryptography.Aes
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class AesManaged : System.Security.Cryptography.Aes
public sealed class AesManaged : System.Security.Cryptography.Aes
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak szyfrować i odszyfrowywać przykładowe dane przy użyciu AesManaged klasy .

using System;
using System.IO;
using System.Security.Cryptography;

namespace Aes_Example
{
    class AesExample
    {
        public static void Main()
        {
            string original = "Here is some data to encrypt!";

            // Create a new instance of the AesManaged
            // class.  This generates a new key and initialization
            // vector (IV).
            using (AesManaged myAes = new AesManaged())
            {
                // 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);
            }
        }
        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("IV");
            byte[] encrypted;

            // Create an AesManaged object
            // with the specified key and IV.
            using (AesManaged aesAlg = new AesManaged())
            {
                aesAlg.Key = Key;
                aesAlg.IV = IV;

                // Create an encryptor 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 AesManaged object
            // with the specified key and IV.
            using (AesManaged aesAlg = new AesManaged())
            {
                aesAlg.Key = Key;
                aesAlg.IV = IV;

                // Create a decryptor 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();
                        }
                    }
                }
            }

            return plaintext;
        }
    }
}

Uwagi

Algorytm AES jest zasadniczo algorytmem symetrycznym Rijndael ze stałym rozmiarem bloku i liczbą iteracji. Ta klasa działa tak samo jak RijndaelManaged klasa, ale ogranicza bloki do 128 bitów i nie zezwala na tryby opinii.

Uwaga

Jeśli ustawienie zasad zabezpieczeń systemu Windows dla algorytmów zgodnych ze standardami FIPS (Federal Information Processing Standards) jest włączone, użycie tego algorytmu zgłasza błąd CryptographicException.

Uwaga

Firma Microsoft uważa, że nie jest już bezpieczne odszyfrowywanie danych zaszyfrowanych za pomocą trybu szyfrowania blokowego (CBC) szyfrowania symetrycznego (co jest wartością Mode domyślną właściwości) podczas stosowania dopełniania weryfikowalnego bez uprzedniego zapewnienia integralności tekstu szyfrującego, z wyjątkiem bardzo konkretnych okoliczności. Aby uzyskać więcej informacji, zobacz Luki w zabezpieczeniach chronometrażu z odszyfrowywaniem symetrycznym w trybie CBC przy użyciu dopełnienia.

Konstruktory

AesManaged()
Przestarzałe.

Inicjuje nowe wystąpienie klasy AesManaged.

Pola

BlockSizeValue
Przestarzałe.

Reprezentuje rozmiar bloku w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
FeedbackSizeValue
Przestarzałe.

Reprezentuje rozmiar opinii w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
IVValue
Przestarzałe.

Reprezentuje wektor inicjowania (IV) dla algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
KeySizeValue
Przestarzałe.

Reprezentuje rozmiar w bitach klucza tajnego używanego przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
KeyValue
Przestarzałe.

Reprezentuje klucz tajny dla algorytmu symetrycznego.

(Odziedziczone po SymmetricAlgorithm)
LegalBlockSizesValue
Przestarzałe.

Określa rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
LegalKeySizesValue
Przestarzałe.

Określa rozmiary kluczy w bitach obsługiwane przez algorytm symetryczny.

(Odziedziczone po SymmetricAlgorithm)
ModeValue
Przestarzałe.

Reprezentuje tryb szyfrowania używany w algorytmie symetrycznym.

(Odziedziczone po SymmetricAlgorithm)
PaddingValue
Przestarzałe.

Reprezentuje tryb dopełniania używany w algorytmie symetrycznym.

(Odziedziczone po SymmetricAlgorithm)

Właściwości

BlockSize
Przestarzałe.

Pobiera lub ustawia rozmiar bloku w bitach operacji kryptograficznych.

BlockSize
Przestarzałe.

Pobiera lub ustawia rozmiar bloku w bitach operacji kryptograficznych.

(Odziedziczone po SymmetricAlgorithm)
FeedbackSize
Przestarzałe.

Pobiera lub ustawia liczbę bitów, które mają być używane jako opinie.

IV
Przestarzałe.

Pobiera lub ustawia wektor inicjowania (IV) do użycia dla algorytmu symetrycznego.

Key
Przestarzałe.

Pobiera lub ustawia klucz tajny używany dla algorytmu symetrycznego.

KeySize
Przestarzałe.

Pobiera lub ustawia rozmiar klucza tajnego używanego dla algorytmu symetrycznego w bitach.

LegalBlockSizes
Przestarzałe.

Pobiera rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny.

LegalBlockSizes
Przestarzałe.

Pobiera rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po Aes)
LegalKeySizes
Przestarzałe.

Pobiera rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny.

LegalKeySizes
Przestarzałe.

Pobiera rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny.

(Odziedziczone po Aes)
Mode
Przestarzałe.

Pobiera lub ustawia tryb działania algorytmu symetrycznego.

Padding
Przestarzałe.

Pobiera lub ustawia tryb dopełniania używany w algorytmie symetrycznym.

Metody

Clear()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez klasę SymmetricAlgorithm .

(Odziedziczone po SymmetricAlgorithm)
CreateDecryptor()
Przestarzałe.

Tworzy obiekt odszyfrowywania symetrycznego przy użyciu bieżącego klucza i wektora inicjowania (IV).

CreateDecryptor(Byte[], Byte[])
Przestarzałe.

Tworzy obiekt odszyfrowywania symetrycznego przy użyciu określonego klucza i wektora inicjowania (IV).

CreateEncryptor()
Przestarzałe.

Tworzy obiekt szyfrowania symetrycznego przy użyciu bieżącego klucza i wektora inicjowania (IV).

CreateEncryptor(Byte[], Byte[])
Przestarzałe.

Tworzy obiekt szyfrujący symetryczny przy użyciu określonego klucza i wektora inicjowania (IV).

DecryptCbc(Byte[], Byte[], PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu CBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Odszyfrowuje dane do określonego buforu przy użyciu trybu EBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
Dispose()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy SymmetricAlgorithm.

(Odziedziczone po SymmetricAlgorithm)
Dispose(Boolean)
Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu CBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Przestarzałe.

Szyfruje dane przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Przestarzałe.

Szyfruje dane przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Przestarzałe.

Szyfruje dane do określonego buforu przy użyciu trybu EBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
Equals(Object)
Przestarzałe.

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GenerateIV()
Przestarzałe.

Generuje losowy wektor inicjowania (IV) do użycia dla algorytmu symetrycznego.

GenerateKey()
Przestarzałe.

Generuje losowy klucz do użycia dla algorytmu symetrycznego.

GetCiphertextLengthCbc(Int32, PaddingMode)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem dopełniania i długością zwykłego tekstu w trybie CBC.

(Odziedziczone po SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem dopełniania i długością zwykłego tekstu w trybie CFB.

(Odziedziczone po SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Przestarzałe.

Pobiera długość szyfrowania tekstu z danym trybem dopełniania i długością zwykłego tekstu w trybie EBC.

(Odziedziczone po SymmetricAlgorithm)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

W przypadku zastąpienia w klasie pochodnej próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Przestarzałe.

W przypadku zastąpienia w klasie pochodnej próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

W przypadku zastąpienia w klasie pochodnej próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Przestarzałe.

Próbuje zaszyfrować dane w określonym buforze przy użyciu trybu CBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Po zastąpieniu w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Przestarzałe.

Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Przestarzałe.

W przypadku zastąpienia w klasie pochodnej próbuje zaszyfrować dane w określonym buforze przy użyciu trybu CFB z określonym trybem wypełniania i rozmiarem opinii.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem dopełniania.

(Odziedziczone po SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Przestarzałe.

W przypadku zastąpienia w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem wypełniania.

(Odziedziczone po SymmetricAlgorithm)
ValidKeySize(Int32)
Przestarzałe.

Określa, czy określony rozmiar klucza jest prawidłowy dla bieżącego algorytmu.

(Odziedziczone po SymmetricAlgorithm)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po SymmetricAlgorithm)

Dotyczy

Produkt Wersje (Przestarzałe)
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5 (6, 7, 8, 9)
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1