Visual Basic Grundkurs

Ein Verschlüsselungsprogramm

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Hier geht es um Ein- und Ausgabe von Dateien über Datenströme und die Steuerelemente TrackBar (Schieberegeler) und NumericUpDown (Spinner). Das Beispielprogramm verschiebt ASCII-Zeichen innerhalb des Zeichensatzes und erlaubt auch das Entschlüsseln.
07:53

Transkript

In diesem Video lernen Sie ein etwas komplexeres vb.net Programm kennen, und zwar ist es ein Kodierungs- und Dekodierungsprogramm. Ich möchte zuerst zeigen, wie das Programm eigentlich arbeitet. Sie können, über die Schaltfläche " Kodieren" eine Datei auswählen, dann geben Sie eine Datei an, wo der kodierete Code hingeschrieben werden soll, und dann ist das Ding fertig. Sie sehen hier die Originaldatei und die Zieldatei, wir schauen sie beide mal an. Das jetzt die Originaldatei, kein sonderlich sinnvoller Text, aber lesbarer Testtext und so weiter, und so weiter. Das wurde raus, und das ist nicht mehr lesbar, damit wurde es kodiert, verschlüsselt. Was ist jetzt der Hintergrund? Wenn wir uns das hier ansehen, gibt es hier ein sogennater Verschlüsselungsfaktor, und das ist mit einem Schieberegler gekoppelt, und dieser Schieberegler ist mit einem Spinner verbunden. Diese beiden Steuerungselemente oder Steuerelemente stehen unter vb.net zur Verfügung, um nummerische Werte zu ändern. Und wenn hier eine Eins steht, heißt es, dass sämtliche Zeichen, die im ASCII-Code hier an einer bestimmten Position sind, um genau ein Zeichen weiter nach oben geschoben werden. Man nennt dieses den Zera Schiffer, angeblich hat U das Zera damals seine Nachrichten so verschlüsselt, indem er alle Buchstaben, alle Zahlen, alle Zeichen um drei verschoben hat im Alphabet, und der Zahlenfolge. Na ja, und diese Logik nutze ich hier auch. Jetzt kann ich auch wieder dekodieren, wenn ich weiß, um was für ein Faktor diese Datei verschoben war. Das heißt, die Datei "neu.txt" sieht wie so aus wie die Originaldatei. Ist mir der Faktor jedoch nicht bekannt, ich nehme einen anderen Faktor. Dann sieht das also halt so aus, nicht lesbar. Das ist zugegebenerweise ein sehr einfaches Verschlüsselungsprogramm, aber erstmal muss überhaupt jemand wissen, dass so verschlüsselt wurde, und zweitens immerhin muss er sich dann durch maximal 255 verschiedene Vorgängequellen bis etwas Vernünftiges bekommt unter Umständen, und das ist für eine automatisierte Analyse schon bisschen Aufwand. Wie gesagt, sehr einfach, und wir wollen ja nur hier übrige Mechanismen zeigen in Hinsicht auf vb.net, es ist auch nicht zu Ende ausprogrammiert, es gibt Dinge, die dann auch optimiert werden müssten, aber im Groben, wie gesagt, funktioniert das. Sie haben gesehen, dass wir hier so Steuerminde haben, und die finden sich hier auch in der Werkzeugsliste, in dem Werkzeugkasten. Hier habe ich dann einfach reingeschoben und ich habe die synchronisiert. Das haben Sie gesehen. Das ist eine Sache, die gucken wir uns an, und dann gucken wir uns natürlich an, wie das Kodieren Dekodieren geht. Zum einen haben wir hier "Message Box Elemente", die immer volksvoll eine Kodierung und Dekodierung einer Meldung anzeigen. Hier sehen Sie, dass "Label1.Text" mit dem "TrackBar Wert" gekoppelt ist, und der "TrackBar Wert" mit dem "NumericUpDown Wert". Und das sind genau diese Steuerelemente, eben diese Schieberegler und dieses Spinnfeld. Ja denn, was ich in einem dieser beiden Steuerelemente für ein Wert auswähle, hole ich mir diesen Wertungsspeicher, ich hole mir, das ist aus diesem nummerischem Hochhunderterfeld. Da kriege ich eine Eigenschaft "Value" und darüber kriege ich den Verschiebungsfaktor. Das ist allerdings ein Stream, und den muss ich erst mit einer Konvertierungsmethode in eine Zahl umwandeln, ich habe hier eine "Int32" Zahl, das ist so was, wie ein Integer. Damit stehen die Werte fest, und frühenzeitlich mache ich noch Applikation "DoEvents", damit die Oberfläche sich aktualisiert. Sie sehen, dass ich eine zweite vb eine visual basic Datei habe, und das ist eine Klasse, in der die eigentliche Kodierung und Dekodierung läuft, genauer genommen, eigentlich das Lesen der Datei, das Verschieben von Zeichen um einen gewissen Faktor und das neue Rausschreiben der Datei. Zuerst einmal habe ich hier einen "openFileDialog", den zeige ich an, und wenn der Anwender auf OK klickt, dann werde ich über den "openFileDialog" eine Methode aufrufen, "OpenFile", das heißt, die ausgewählte Datei wird in einem sogenannten Stream, einen Datenstrom geladen. Ein Datenstrom dieser Art enthält damit einfach die Zeichen der Datei. Und diesen Datenstrom, den lese ich so lange aus, mit einer While Schleife, solange ich nicht ein Zeichen bekomme, dass es Ende des Datenstroms kennzeichnet, nämlich, wenn ich am Ende einer Datei bin, bekomme ich den Wert minus 1, und solange ich den nicht bekomme, lese ich einfach immer weiter. Nun, sehen Sie hier, dass ich aus dem Code "Byte" lese, das heißt, ich flechte nicht das Zeichen selbst haben, sondern des ASCII- Code. Das nenne ich einen numerischen Wert, ein Charakter hat eine ASCII- Code, und diesen nummerischen Wert, den kann ich um einen Faktor verschieben, das ist eine matsche Operation. Wenn ich kodiere, addiere ich einen Faktor auf, wenn ich dekodiere, ziehe ich einen Frap, und was dann sich draus kommt, das kodiere ich wieder über "convertToCharakter" in ein Zeichen, und damit bekomme ich sukzessiver einen neuen String, und den kann ich in einem Datenstrom rausschreiben. Ganz kontramate Idee, wenn, beispielsweise, das Zeichen "d" den ASCII-Code hundertzehner hat nicht, ich sage jetzt noch mal, dann würde das Verschieben um zwei den ASCII-Code Zwölfer geben, und damit wurde statt dem "d" an der Stelle dann "def" stehen, und so wird es für jedes Zeichen gehen, und insbesondere es ist dann interessant, wenn man in die nicht druckbaren Zeichen hineinkommt, denn dann kann man nicht mehr sehen, so einfach, was ist das denn für Zeichen. Sie sehen, ich habe hier auch eine sogennate Exception Handling hier, eine Ausnahmebehandlung, um Probleme beim Dateilesen und Schreiben abzufangen, und Sie haben auch gesehen, dass ich für jeden Vorgang, sowohl des Kodierens als auch Dekodierens zwei offen Dialoge habe, beziehungsweise einen offenen Dialog für eine Datei und dann Speichern Dialog. Ich nehme ein Originaldatei, öffne sie, egal, ob kodiert oder dekodiert, und speichere sie. Und das heißt, wenn ich die Datei korrekt eingelesen habe, dann wird ein save Dialog, ein "saveFileDialog" hier geöffnet, und mit einer Methode "WriteAllText" schreibe ich alles, was ich mittlerweile in diesem "Original Code", in diesem Stringvariable gesammelt habe in diese neue Datei hinein. Dazu nutze ich die Klasse "File", die habe ich hier oben, das müssen Sie auch nochmal beachten, "Imports System.IO", und damit ist dann, wenn alles gut gegangen ist, die kodierte Datei geschrieben. Das war jetzt die Methode, die die Kodierung macht und die Dekodierung ist quasi eins zu eins identisch, mit dem einzigen Unterschied, dass Sie hier um ein Faktor minus ein Zeichencode reduzieren, und Sie müssen aufpassen, was passiert in dem Moment, wo Sie Zeichen haben, deren ASCII-Code so in einem Bereich um die Nullraum sind, das heißt, wenn der Faktor größer ist, als das, was Sie noch verschieben können, ohne in den negativen Bereich zu kommen. In unserem Fall gibt es ein Problem, deswegen nehme ich eine Methode "Abs" Absolut, Absolute, um den Absolutwert zu nehmen, und das würde sogennant Überlauf bedeuten, das heißt, ich würde dann eine Verschiebung bekommen in einem Bereich, der noch positiv ist. Wie gesagt, es gibt einige Dinge hier, die an dieser Stelle noch verbesserungswürdig sind, aber so ganz grob haben Sie in diesem Video gesehen, wie Sie Dateien öffnen können, wie Sie Datenströme bekommen, wie Sie damit was Sinvolles machen können. In diesem Fall eine einfache Kodierung von Dateien.

Visual Basic Grundkurs

Entdecken Sie, wie eine der bekanntesten und verbreitetsten Programmiersprachen unter .NET funktioniert.

3 Std. 43 min (51 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:03.11.2014

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!