Freigeben über


Beispiel für symmetrische Algorithmen

Aktualisiert: November 2007

In diesem Beispiel wird mit der Rijndael-Klasse und der TripleDESCryptoServiceProvider-Klasse eine symmetrische Verschlüsselung für geheime Schlüssel implementiert, wie unter Übersicht über Kryptografie beschrieben.

So erhalten Sie Beispiele und Anweisungen zu ihrer Installation

  • Führen Sie eine oder mehrere der folgenden Aktionen aus:

    • Klicken Sie im Menü Hilfe auf Samplings.

      In der Infodatei befinden sich Informationen zu Beispielen.

    • Gehen Sie zur Website mit Visual Studio 2008-Beispielen. Hier stehen die aktuellsten Versionen der Beispiele bereit.

    • Suchen Sie Beispiele auf dem Computer, auf dem Visual Studio installiert wurde. Standardmäßig werden Beispiele und eine Infodatei unter Laufwerk:\Programme\Microsoft Visual Studio 9.0\Beispiele\lcid installiert. Für die Express-Version von Visual Studio werden alle Beispiele online bereitgestellt.

Weitere Informationen finden Sie unter Suchen von Beispieldateien.

Sicherheitshinweis:

Dieser Beispielcode soll lediglich ein Konzept veranschaulichen. Es wird nur der für das jeweilige Konzept relevante Code dargestellt. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "wie besehen" und ohne Garantien zur Verfügung.

So führen Sie dieses Beispiel aus

  • Drücken Sie F5.

Veranschaulicht

In der SampleCrypto-Klasse werden der Verschlüsselungsalgorithmus, die Salt und der Initialisierungsvektor (IV) sowie Verschlüsselungs- und Entschlüsselungsroutinen gekapselt, die eine verschlüsselte Datei definieren. Der Konstruktor nimmt einen Parameter an, der den Verschlüsselungstyp, Rijndael oder TripleDES, bestimmt. Das entsprechende Feld in der Klasse, crpSym, ist vom abstrakten Typ SymmetricAlgorithm. Es wird auf eine Instanz der Rijndael-Klasse oder der TripleDESCryptoServiceProvider-Klasse festgelegt. Mit der CreateSaltIVFile-Methode werden die Salt- und IV-Werte in einer DAT-Datei gespeichert. Die Decrypt-Methode und die Encrypt-Methode verarbeiten die in der SourceFileName-Eigenschaft angegebenen Quelldatei.

Eine Instanz der SampleCrypto-Klasse wird beim Laden des Formulars erstellt. Die Steuerelemente auf dem Formular veranschaulichen die Methoden und Eigenschaften der SampleCrypto-Klasse. Wenn das Encrypt with Password-Steuerelement aktiviert ist, wird der Schlüssel nicht generiert und automatisch festgelegt, sondern von einem mit Salt verschlüsselten Kennwort abgeleitet. Darüber hinaus werden die Salt und der Initialisierungsvektor (IV) unverschlüsselt in einer DAT-Datei gespeichert. Ein Dokument kann dann folgendermaßen auf sichere Weise an eine andere Person übertragen werden: Das verschlüsselte Dokument kann über eine unsichere Leitung gesendet werden, während die DAT-Datei und das Kennwort mit asymmetrischer Verschlüsselung (öffentlicher Schlüssel) gesichert gesendet werden. Dies ist die sicherste Form der Verschlüsselung, ihre Bearbeitung ist allerdings wesentlich zeitintensiver. Aus diesem Grund wird sie i. d. R. für kleine Elemente wie einen geheimen Schlüssel, eine Salt/IV-Datei oder ein Kennwort verwendet.

Siehe auch

Konzepte

Das Kryptografiemodell in .NET Framework

Referenz

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV