.NET entmystifiziert die Verschlüsselung

Listing A enthält ein Konsolenprogramm (TextFileCrypt), das eine Textdatei verschlüsselt, die Sie in der Befehlszeile festlegen. Am Anfang von Listing A ist zu sehen, wie das Programm aufgerufen werden kann. Kommen wir nun zu den wichtigeren Teilen des Codes.

Symmetrische Algorithmen funktionieren so, dass sie Daten verschlüsseln, während diese einen Stream durchlaufen. Wir erstellen einen „normalen“ Output-Stream (wie z.B. einen Datei I/O-Stream), gefolgt von einer Instanz der Klasse CryptoStream, die dann im Huckepackverfahren Daten an den normalen Stream leitet.

Sie schreiben Byte-Anordnungen in den CryptoStream, und während die Daten hindurchströmen, werden sie verschlüsselt und in den normalen Stream geleitet. Verwenden Sie die Klasse FileStream um die Original-Textdatei zu lesen, damit Sie sie in eine Anordnung von Bytes umwandeln können, die in den CryptoStream eingefügt werden kann. Verwenden Sie eine weitere Instanz von FileStream als Output-Mechanismus, an den CryptoStream die verschlüsselten Daten leitet.

Ströme über Ströme
.NET setzt in beträchtlichem Maße Streams ein um Daten zu lesen und zu schreiben. Die Klassen der symmetrischen Algorithmen erfordern sogar ihre Verwendung. Wenn Ihnen .NETs auf Streams basierender Input und Output nicht bekannt ist, empfehle ich Ihnen sehr, sich damit vertraut zu machen.

Wir können jede der verschiedenen Arten symmetrischer Algorithmen instantiieren und verwenden und dabei die Objektvariable als den abstrakten Typ SymmetricAlgorithm festlegen. Ich habe mich hier für Rijndael entschieden, doch Sie könnten genauso gut DES oder TripleDES instantiieren:

.NET ordnet diesen Instanzen der Algorithmus-Provider starke zufällig erzeugte Schlüssel zu. Wenn Sie versuchen Ihre eigenen Schlüssel zu verwenden, kann das gefährlich sein. Es ist ratsam, den „vom Computer generierten“ Schlüssel beizubehalten.

Anschließend stellt die Algorithmusinstanz ein Objekt zur Verfügung, das die eigentliche Datentransformation ausführt. Jeder Algorithmus verfügt hierfür über CreateEncryptor- und CreateDecryptor-Methoden, mit denen Objekte erstellt werden, die die IcryptoTransform-Oberfläche implementieren:

Page: 1 2 3 4 5 6 7 8

ZDNet.de Redaktion

Recent Posts

HostPress für Agenturen und E-Commerce-Betreiber

Höchste Performance-Standards für Webseiten und ein persönlicher, kundenorientierter Premium Support.

4 Tagen ago

V-NAND: Samsung steigert Bit-Dichte um 50 Prozent

Die neue V-NAND-Generation bietet die derzeit höchste verfügbare Bit-Dichte. Samsung steigert auch die Geschwindigkeit und…

5 Tagen ago

Bericht: Google entwickelt App-Quarantäne für Android

Die Sicherheitsfunktion taucht in einer Beta eines kommenden Android-Updates auf. Die Quarantäne beendet unter anderem…

5 Tagen ago

Kostenloser Kurs zum Ausbau von Low-Code-Programmierung

Die OutSystems Developer School hilft Entwicklern, in 2 Wochen komplexe reaktive Anwendungen mit der Low-Code-Plattform…

5 Tagen ago

Cloudflare: DNS-basierte DDoS-Angriffe steigen im ersten Quartal um 80 Prozent

Das Jahr 2024 beginnt laut Cloudflare mit einem Paukenschlag. Die automatischen Systeme des Unternehmens wehren…

6 Tagen ago

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

6 Tagen ago