Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

AesCryptoServiceProvider-Klasse

 

Veröffentlicht: Oktober 2016

Führt symmetrische Ver- und Entschlüsselung mithilfe der Cryptographic Application Programming Interfaces (CAPI)-Implementierung des Advanced Encryption Standard (AES)-Algorithmus.

Namespace:   System.Security.Cryptography
Assembly:  System.Core (in System.Core.dll)

System.Object
  System.Security.Cryptography.SymmetricAlgorithm
    System.Security.Cryptography.Aes
      System.Security.Cryptography.AesCryptoServiceProvider

[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public sealed class AesCryptoServiceProvider : Aes

NameBeschreibung
System_CAPS_pubmethodAesCryptoServiceProvider()

Initialisiert eine neue Instanz der AesCryptoServiceProvider-Klasse.

NameBeschreibung
System_CAPS_pubpropertyBlockSize

Ruft die Blockgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyFeedbackSize

Ruft die Feedbackgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyIV

Ruft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyKey

Ruft ab oder legt den symmetrischen Schlüssel, der zur Ver- und Entschlüsselung verwendet wird.(Überschreibt SymmetricAlgorithm.Key.)

System_CAPS_pubpropertyKeySize

Ruft ab oder legt die Größe des geheimen Schlüssels in Bits.(Überschreibt SymmetricAlgorithm.KeySize.)

System_CAPS_pubpropertyLegalBlockSizes

Ruft die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits ab.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyLegalKeySizes

Ruft die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits ab.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyMode

Ruft den Modus für die Ausführung des symmetrischen Algorithmus ab oder legt diesen fest.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubpropertyPadding

Ruft den im symmetrischen Algorithmus verwendeten Füllzeichenmodus ab oder legt diesen fest.(Geerbt von „SymmetricAlgorithm“.)

NameBeschreibung
System_CAPS_pubmethodClear()

Gibt alle von der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubmethodCreateDecryptor()

Erstellt ein symmetrisches AES-Entschlüsselungsobjekt mit dem aktuellen Schlüssel und Initialisierungsvektor (IV).(Überschreibt SymmetricAlgorithm.CreateDecryptor().)

System_CAPS_pubmethodCreateDecryptor(Byte[], Byte[])

Erstellt ein symmetrisches AES-Entschlüsselungsobjekt mit dem angegebenen Schlüssel und Initialisierungsvektor (IV).(Überschreibt SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)

System_CAPS_pubmethodCreateEncryptor()

Erstellt ein symmetrisches AES-Verschlüsselungsobjekt mit dem aktuellen Schlüssel und Initialisierungsvektor (IV).(Überschreibt SymmetricAlgorithm.CreateEncryptor().)

System_CAPS_pubmethodCreateEncryptor(Byte[], Byte[])

Erstellt ein symmetrisches Verschlüsselungsobjekt mit dem angegebenen Schlüssel und Initialisierungsvektor (IV).(Überschreibt SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).)

System_CAPS_pubmethodDispose()

Gibt alle von der aktuellen Instanz der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.(Geerbt von „SymmetricAlgorithm“.)

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_pubmethodGenerateIV()

Generiert einen zufälligen Initialisierungsvektor (IV) für den Algorithmus verwendet.(Überschreibt SymmetricAlgorithm.GenerateIV().)

System_CAPS_pubmethodGenerateKey()

Generiert einen zufälligen Schlüssel für den Algorithmus verwendet.(Überschreibt SymmetricAlgorithm.GenerateKey().)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

System_CAPS_pubmethodValidKeySize(Int32)

Bestimmt, ob die angegebene Schlüsselgröße für den aktuellen Algorithmus gültig ist.(Geerbt von „SymmetricAlgorithm“.)

Im folgenden Beispiel wird veranschaulicht, wie zum Verschlüsseln und Entschlüsseln von Beispieldaten mit der AesCryptoServiceProvider Klasse.

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("IV");
            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();
                        }
                    }
                }

            }

            return plaintext;

        }
    }
}

.NET Framework
Verfügbar seit 3.5

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: