Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

RijndaelManaged-Klasse

Greift auf die verwaltete Version des Rijndael-Algorithmus zu. Diese Klasse kann nicht vererbt werden.

Namespace:  System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)
[ComVisibleAttribute(true)]
public sealed class RijndaelManaged : Rijndael

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

  NameBeschreibung
Öffentliche MethodeRijndaelManagedInitialisiert eine neue Instanz der RijndaelManaged-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 geheimen Schlüssel für den symmetrischen Algorithmus ab oder legt diesen fest. (Von SymmetricAlgorithm geerbt.)
Öffentliche EigenschaftKeySizeRuft die Größe des geheimen Schlüssels für den symmetrischen Algorithmus in Bits ab oder legt diese fest. (Von SymmetricAlgorithm geerbt.)
Ö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 Entschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem Initialisierungsvektor (IV). (Von SymmetricAlgorithm geerbt.)
Öffentliche MethodeCreateDecryptor(Byte[], Byte[])Erstellt ein symmetrisches Rijndael-Entschlüsselungsobjekt mit der angegebenen Key-Eigenschaft und dem angegebenen Initialisierungsvektor (IV). (Überschreibt SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)
Öffentliche MethodeCreateEncryptor()Erstellt ein symmetrisches Verschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem aktuellen Initialisierungsvektor (IV). (Von SymmetricAlgorithm geerbt.)
Öffentliche MethodeCreateEncryptor(Byte[], Byte[])Erstellt ein symmetrisches Rijndael-Verschlüsselungsobjekt mit der angegebenen Key-Eigenschaft und dem angegebenen 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 Key für den Algorithmus. (Überschreibt SymmetricAlgorithm.GenerateKey().)
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (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

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


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

namespace RijndaelManaged_Example
{
    class RijndaelExample
    {
        public static void Main()
        {
            try
            {

                string original = "Here is some data to encrypt!";

                // Create a new instance of the RijndaelManaged
                // class.  This generates a new key and initialization 
                // vector (IV).
                using (RijndaelManaged myRijndael = new RijndaelManaged())
                {
                    // Encrypt the string to an array of bytes.
                    byte[] encrypted = EncryptStringToBytes(original, myRijndael.Key, myRijndael.IV);

                    // Decrypt the bytes to a string.
                    string roundtrip = DecryptStringFromBytes(encrypted, myRijndael.Key, myRijndael.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(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 RijndaelManaged object
            // with the specified key and IV.
            using (RijndaelManaged rijAlg = new RijndaelManaged())
            {
                rijAlg.Key = Key;
                rijAlg.IV = IV;

                // Create a decrytor to perform the stream transform.
                ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.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(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("Key");

            // Declare the string used to hold
            // the decrypted text.
            string plaintext = null;

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

                // Create a decrytor to perform the stream transform.
                ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.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, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. 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.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
© 2013 Microsoft. Alle Rechte vorbehalten.