Baca dalam bahasa Inggris

Bagikan melalui


AesManaged Kelas

Definisi

Perhatian

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

Menyediakan implementasi terkelola dari algoritma simetris Standar Enkripsi Lanjutan (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
Warisan
Atribut

Contoh

Contoh berikut menunjukkan cara mengenkripsi dan mendekripsi data sampel menggunakan AesManaged kelas .

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;
        }
    }
}

Keterangan

Algoritma AES pada dasarnya adalah algoritma simetris Rijndael dengan ukuran blok tetap dan jumlah perulangan. Kelas ini berfungsi dengan cara yang sama seperti RijndaelManaged kelas tetapi membatasi blok hingga 128 bit dan tidak mengizinkan mode umpan balik.

Catatan

Jika pengaturan kebijakan keamanan Windows untuk algoritma yang mematuhi Standar Pemrosesan Informasi Federal (FIPS) diaktifkan, menggunakan algoritma ini akan melemparkan CryptographicException.

Catatan

Microsoft percaya bahwa tidak lagi aman untuk mendekripsi data yang dienkripsi dengan mode Cipher-Block-Chaining (CBC) enkripsi simetris (yang merupakan nilai Mode default properti) ketika padding yang dapat diverifikasi telah diterapkan tanpa terlebih dahulu memastikan integritas ciphertext, kecuali untuk keadaan yang sangat spesifik. Untuk informasi selengkapnya, lihat Kerentanan pengaturan waktu dengan dekripsi simetris mode CBC menggunakan padding.

Konstruktor

AesManaged()
Kedaluwarsa.

Menginisialisasi instans baru kelas AesManaged.

Bidang

BlockSizeValue
Kedaluwarsa.

Mewakili ukuran blok, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
FeedbackSizeValue
Kedaluwarsa.

Mewakili ukuran umpan balik, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
IVValue
Kedaluwarsa.

Mewakili vektor inisialisasi (IV) untuk algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
KeySizeValue
Kedaluwarsa.

Mewakili ukuran, dalam bit, dari kunci rahasia yang digunakan oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
KeyValue
Kedaluwarsa.

Mewakili kunci rahasia untuk algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalBlockSizesValue
Kedaluwarsa.

Menentukan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalKeySizesValue
Kedaluwarsa.

Menentukan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
ModeValue
Kedaluwarsa.

Mewakili mode sandi yang digunakan dalam algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
PaddingValue
Kedaluwarsa.

Mewakili mode padding yang digunakan dalam algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)

Properti

BlockSize
Kedaluwarsa.

Mendapatkan atau mengatur ukuran blok, dalam bit, dari operasi kriptografi.

BlockSize
Kedaluwarsa.

Mendapatkan atau mengatur ukuran blok, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
FeedbackSize
Kedaluwarsa.

Mendapatkan atau mengatur jumlah bit yang akan digunakan sebagai umpan balik.

IV
Kedaluwarsa.

Mendapatkan atau mengatur vektor inisialisasi (IV) yang akan digunakan untuk algoritma simetris.

Key
Kedaluwarsa.

Mendapatkan atau mengatur kunci rahasia yang digunakan untuk algoritma simetris.

KeySize
Kedaluwarsa.

Mendapatkan atau mengatur ukuran, dalam bit, dari kunci rahasia yang digunakan untuk algoritma simetris.

LegalBlockSizes
Kedaluwarsa.

Mendapatkan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

LegalBlockSizes
Kedaluwarsa.

Mendapatkan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari Aes)
LegalKeySizes
Kedaluwarsa.

Mendapatkan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

LegalKeySizes
Kedaluwarsa.

Mendapatkan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari Aes)
Mode
Kedaluwarsa.

Mendapatkan atau mengatur mode untuk pengoperasian algoritma simetris.

Padding
Kedaluwarsa.

Mendapatkan atau mengatur mode padding yang digunakan dalam algoritma simetris.

Metode

Clear()
Kedaluwarsa.

Merilis semua sumber daya yang SymmetricAlgorithm digunakan oleh kelas .

(Diperoleh dari SymmetricAlgorithm)
CreateDecryptor()
Kedaluwarsa.

Membuat objek dekripsi simetris menggunakan kunci saat ini dan vektor inisialisasi (IV).

CreateDecryptor(Byte[], Byte[])
Kedaluwarsa.

Membuat objek dekripsi simetris menggunakan kunci dan vektor inisialisasi (IV) yang ditentukan.

CreateEncryptor()
Kedaluwarsa.

Membuat objek enkripsi simetris menggunakan kunci saat ini dan vektor inisialisasi (IV).

CreateEncryptor(Byte[], Byte[])
Kedaluwarsa.

Membuat objek enkripsi simetris menggunakan kunci dan vektor inisialisasi (IV) yang ditentukan.

DecryptCbc(Byte[], Byte[], PaddingMode)
Kedaluwarsa.

Mendekripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Kedaluwarsa.

Mendekripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Kedaluwarsa.

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Kedaluwarsa.

Mendekripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mendekripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Kedaluwarsa.

Mendekripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Kedaluwarsa.

Mendekripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Kedaluwarsa.

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
Dispose()
Kedaluwarsa.

Merilis semua sumber daya yang digunakan oleh instans SymmetricAlgorithm kelas saat ini.

(Diperoleh dari SymmetricAlgorithm)
Dispose(Boolean)
Kedaluwarsa.

Merilis sumber daya tidak terkelola yang SymmetricAlgorithm digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Kedaluwarsa.

Mengenkripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Kedaluwarsa.

Mengenkripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Kedaluwarsa.

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Kedaluwarsa.

Mengenkripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mengenkripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Kedaluwarsa.

Mengenkripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Kedaluwarsa.

Mengenkripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Kedaluwarsa.

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
Equals(Object)
Kedaluwarsa.

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GenerateIV()
Kedaluwarsa.

Menghasilkan vektor inisialisasi acak (IV) yang akan digunakan untuk algoritma simetris.

GenerateKey()
Kedaluwarsa.

Menghasilkan kunci acak yang akan digunakan untuk algoritma simetris.

GetCiphertextLengthCbc(Int32, PaddingMode)
Kedaluwarsa.

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode CBC.

(Diperoleh dari SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Kedaluwarsa.

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode CFB.

(Diperoleh dari SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Kedaluwarsa.

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode ECB.

(Diperoleh dari SymmetricAlgorithm)
GetHashCode()
Kedaluwarsa.

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()
Kedaluwarsa.

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()
Kedaluwarsa.

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()
Kedaluwarsa.

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Kedaluwarsa.

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Ketika ditimpa dalam kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Kedaluwarsa.

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Kedaluwarsa.

Ketika ditimpa di kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Ketika ditimpa di kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Kedaluwarsa.

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Kedaluwarsa.

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Kedaluwarsa.

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Kedaluwarsa.

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
ValidKeySize(Int32)
Kedaluwarsa.

Menentukan apakah ukuran kunci yang ditentukan valid untuk algoritma saat ini.

(Diperoleh dari SymmetricAlgorithm)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Kedaluwarsa.

Merilis sumber daya tidak terkelola yang SymmetricAlgorithm digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari SymmetricAlgorithm)

Berlaku untuk

Produk Versi (Kedaluwarsa)
.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