Cäsar Verschlüsselung

  • VB.NET

Es gibt 145 Antworten in diesem Thema. Der letzte Beitrag () ist von get_banned.

    Cäsar Verschlüsselung

    Hallo
    Ich suche den Quellcode für die Cäsar-Verschlüsselung für Visual Basic 2008 Express Edition bzw ein (ausführliches) Tutorial, da ich mich so ziemlich garnicht mit Vb auskenne. Hat da zufällig jmd was parrat?

    * Topic verschoben *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Wenn du fertigen Code haben willst solltest du im Markplatz posten und eine Gegenleistung anbieten.

    Ansonsten ist Cäsar meines Wissen nur eine rotierende Verschlüsselung A => C, B => D, C => E, usw.
    Wenn du dich ein bischel, wirklich nur ein bischel mit der VB Materie auseinander setzt bekommste sowas hin, wenn das nicht willst, wie gesagt biete eine Gegenleistung wenn du so eine Vorderung für einen Copy und Paste fertigen Code stellst.
    Wenn du dich nicht so gut mit VB auskennst, mach lieber erst einmal etwas anderes zum Üben, lies ein Buch, aber stell bitte keine C&P-Code-Anfragen :thumbdown:
    Beispiele für Übungs-Programme: (Ja, stink langweilig, aber Übung)
    • Hello World-Programm
    • Kleiner Browser mit der WebBrowser-Komponente
    • einfaches Textprogramm
    • Rotationsalgorithmus
    • GDI
    • Chat-Spammer mit Sendkeys (Nur übungsweise)
    • ...


    Bücher: (Lesen ist spannend :D)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Kouki“ ()

    Hm, vielleicht hast du recht... Ich schreib das mal dazu. Ohne Komponenten, hmmm... GDI ist wohl auch nicht ganz so schwer, so paar Formen auf die Form zeichnen... Mit dem Buch wäre das kein Problem, wenn man das versteht, was erklärt wird. Schreib ich auch wohl noch dazu XD
    Jo ein Hello-World und einen kleinen Rechner habe ich schon programmiert, aber so ganz ohne Hilfe komme ich wohl nicht so schnell auf den Code. Ich ging davon aus das es diesen entweder hier im Forum oder irgendwo anders im Netz schon mal gegeben aht, den ist ja die einfachste Verschlüsselung, die es gibt.
    Hast du schon? Alles auf der Liste? Üb erstmal ein bisschen, ich wollte am Anfang auch sofort alles mögliche, aber denkst du, das ist was geworden? Solche Verschlüsselungen sollte man erst machen, wenn man relativ sicher auf dem Gebiet ist. Aber ich sage dir eine der möglichen Lösungen:

    Du gehst jedes Zeichen durch und holst dir mit Asc() die dazugehörige Nummer, zu der 3 oder 2 oder was auch immer hinzufügst. Sobald du dies getan hast, holst du dir aus der neuen Nummer das neue Zeichen mit Chr(). Nur mit den letzten Zeichen wirds etwas schwieriger, aber da kannst du mit If arbeiten. Und wenn du das Zeichen hast, fügst du dieses dem externen String hinzu.

    Und? Verstanden? Wenn nich, dann üb weiter, es ist noch kein Meister vom Himmel gefallen und C&P wird es von mir nicht geben :thumbdown:
    Ich habe im Netz den Code hier gefunden. Irgenwie gibt der bei mir aber am Schluss einfach immer ein leeres Feld aus.

    dim text,rot,code,tmp
    text=Inputbox("Text eingeben","Caesar")
    rot=InputBox("Rotation eingeben","Caesar")

    for i=1 to Len(text)
    tmp=Asc(Mid(text,i,1))
    if tmp >= 65 and tmp <= 90 then 'ASCII 65 bis 90 = a-z
    tmp = tmp + rot
    if tmp > 90 then
    tmp = tmp - 90 + 64
    end if
    elseif tmp >= 97 and tmp <= 122 then ' ASCII 97 bis 122 = A-Z
    tmp = tmp + rot
    if tmp > 122 then
    tmp = tmp - 122 + 96
    end if
    end if
    code=code+Chr(tmp)
    next

    MsgBox code,0,"Caesar"
    Leeres Feld? Es sollte eine Messagebox kommen und mal davon abgesehen das der Code sehr nach VB6 aussieht, sollte er dennoch auch in .NET funktionieren.

    Ansonsten mal Einzelschritt Debuggen und schauen was er genau macht an welcher stelle und das für Werte eingelesen und Ausgewertet werden. Wenn bei Einzelschritt Debuggen mit der Maus über eine Variable fährst bekommste dessen Wert angezeigt.
    Jo also es kommt ein Feld, bei dem man das Wort eingeben soll, das verschlüsselt werden soll, dann ein ein Feld bei dem man die Rotation eingeben soll und wenn man dann auf OK klickt, sollte ja das verschlüsselte Wort erscheinen, aber es kommt nur ein leeres Feld.
    Nun, das Leben besteht eben nicht nur aus Copy und Paste Code, ich habe ihn mal getestet und was bei VB6 Code üblich ist fehlt jede Zuweisung von Variablentypen, sicher liegt es daran, wenn du mal Option Strict On setzt werden dir ein haufen von Fehlern ausgeworfen, die du zunächst alle beseitigen musst und die Variablen richtig Deklarieren als String und Integer.

    Danach funktioniert der Code.
    Ich an deiner Stelle würde den Code selber schreiben und mich nicht auf die Suche nach Codes von Google machen, denn dabei lernst du nix und kannst dich auch nicht als Programmierer bezeichnen. Du kannst den Code ja anscheinend nicht so umschreiben, dass es funktioniert. Nein: Du fragst einfach mal uns, kostet ja nix. Lern lieber was über For...Next-Schleifen, Operatoren, Variablen und Datentypen, If...Then..Else (Einzeilig), If...Then...Else-Block und Select Case. Wenn du dir dann noch die Funktionen Asc() und Chr() ansiehst und alles miteinander kombinierst, hast du dein Programm sicher bald fertig. Und noch besser: Es ist zu 100% Eigenarbeit! :thumbup:

    Eistee schrieb:

    Was meint ihr mit "Rotationsalgorithmus" ?

    Na, weil die Buchstaben "rotiert" werden.
    Stell dir einen Ring vor. Du schreibst die Buchstaben von A-Z drauf so dass direkt nach dem Z wieder das A kommt. Bau einen zweiten identischen Ring. Montier beide auf ne Achse, den einen fest, den anderen drehbar. Der "stehende" Ring stellt die Eingabe dar (beim verschlüsseln!), und der darunterliegende zweite Ring stellt den Output dar. Drehe den zweiten Ring zb zwei Buchstabenpositionen weiter, so dass A zu C wird. Dann wird B zu D, ... und Z zu B.
    -> Rotationsalgorithmus in Hardware ;)
    Du musst hier nat. mit den Befehlen Chr und Asc arbeiten. Asc macht aus einer Zahl (Dezimal Zahl aus einer ASCII Tabelle) einen Buchstaben und Chr das umgekehrte.
    Du musst also den ASCII-Code des Buchstaben mit Chr holen (also als Argument übergeben -> logisch), dann den ASCII-Code + 2 (oder um wieviel die Buchstaben verschoben werden sollen). Dann noch prüfen ob der 2. ASCII Code (also der um 2 addierte ASCII-Code) im Bereich der Buchstaben ist (also nach 64 und vor 91) wenn er nach 90 ist musst du nat wieder den Code "nach vorne bringen".
    Dann nat. noch den Code mit Asc in einen Buchstaben umwandeln. Dann hast du einen Buchstaben in Caesar verschlüsselt. Das ganze nat. noch in einer Schleife damit du Wörter etc. umwandeln kannst. (Die ASCII Zaheln die ich gesagt habe zählen nur für Großbuchstaben also A-Z).

    Wenn man das nicht kann, dann kann man die Grundlagen nicht (außer vllt. Asc und Chr aber das hab ich dir gesagt), die Grundlagen sind absolute vorraussetzung für das posten....
    A-Z = 65-90
    a-z = 97-122

    das sollte schon mal helfen