(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

AesCryptoServiceProvider-Klasse

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

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

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

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

Der AesCryptoServiceProvider-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeAesCryptoServiceProviderInitialisiert eine neue Instanz der AesCryptoServiceProvider-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftBlockSizeRuft die Blockgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftFeedbackSizeRuft die Feedbackgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftIVRuft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftKeyRuft den symmetrischen Schlüssel ab, der zur Verschlüsselung und Entschlüsselung verwendet wird, oder legt diesen fest. (Überschreibt SymmetricAlgorithm.Key.)
Öffentliche EigenschaftKeySizeRuft die Größe, in Bits, des geheimen Schlüssels ab oder legt diese fest. (Überschreibt SymmetricAlgorithm.KeySize.)
Öffentliche EigenschaftLegalBlockSizesRuft die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits ab. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftLegalKeySizesRuft die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits ab. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftModeRuft den Modus für die Ausführung des symmetrischen Algorithmus ab oder legt diesen fest. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftPaddingRuft den im symmetrischen Algorithmus verwendeten Füllzeichenmodus ab oder legt diesen fest. (Von SymmetricAlgorithm geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeClearGibt alle von der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei. (Von SymmetricAlgorithm geerbt.)
Öffentliche MethodeCreateDecryptor()Erstellt ein symmetrisches AES-Entschlüsselungsobjekt mit dem aktuellen Schlüssel und Initialisierungsvektor (IV). (Überschreibt SymmetricAlgorithm.CreateDecryptor().)
Öffentliche MethodeCreateDecryptor(Byte[], Byte[])Erstellt ein symmetrisches AES-Entschlüsselungsobjekt mit dem angegebenen Schlüssel und Initialisierungsvektor (IV). (Überschreibt SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)
Öffentliche MethodeCreateEncryptor()Erstellt ein symmetrisches AES-Verschlüsselungsobjekt mit dem aktuellen Schlüssel und Initialisierungsvektor (IV). (Überschreibt SymmetricAlgorithm.CreateEncryptor().)
Öffentliche MethodeCreateEncryptor(Byte[], Byte[])Erstellt ein symmetrisches Verschlüsselungsobjekt mit dem angegebenen Schlüssel und Initialisierungsvektor (IV). (Überschreibt SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).)
Öffentliche MethodeDispose()Gibt alle von der aktuellen Instanz der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei. (Von SymmetricAlgorithm geerbt.)
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeGenerateIVGeneriert einen zufälligen Initialisierungsvektor (IV) für den Algorithmus. (Überschreibt SymmetricAlgorithm.GenerateIV().)
Öffentliche MethodeGenerateKeyGeneriert einen zufälligen Schlüssel für den Algorithmus. (Überschreibt SymmetricAlgorithm.GenerateKey().)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeValidKeySizeBestimmt, ob die angegebene Schlüsselgröße für den aktuellen Algorithmus gültig ist. (Von SymmetricAlgorithm geerbt.)
Zum Seitenanfang

HinweisHinweis

Das HostProtectionAttribute -Attribut, das auf diesen Typ oder Member angewendet wird, besitzt den folgenden Resources Eigenschaftswert: MayLeakOnAbort. Das HostProtectionAttribute hat keine Auswirkungen auf Desktopanwendungen (die normalerweise durch Doppelklicken auf ein Symbol, Eingeben eines Befehls oder einer URL in einem Browser gestartet werden). Weitere Informationen finden Sie unter HostProtectionAttribute -Klasse oder SQL Server-Programmierung und Hostschutzattribute.

Im folgenden Beispiel wird das Verschlüsseln und Entschlüsseln von Beispieldaten mit der AesCryptoServiceProvider-Klasse veranschaulicht.


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

            }

            return plaintext;

        }
    }
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft