Eigene Text-Verschlüsselung programmieren

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Keybladmaster.

    Eigene Text-Verschlüsselung programmieren

    Hey Leute,

    Ich habe vor ein eigenes Text-Verschlüsselungssystem zu programieren.

    Aber gibt es da eine möglichkeit das man da einfach nur z.B.:

    a = B

    b = C

    c = D

    soetwas eintragen muss?
    Ich kenne mich wirklich nicht sehr gut mit VB aus, deshalb bitte ich um eine einfache Antwort. :)

    EDIT: Und das man es natürlich auch wieder entschlüssenln kann.
    Zum Ver-/Ent-Schlüsseln gibts hunderte von verschiedenen Algorithmen.

    Willst du einen neuen erfinden, oder was hast du vor?
    Falls dem so ist, mach dir 4 Dinge klar:
    1. Kryptografie ist eine höchst ausbaldowerte Wissenschaft, also dein selbsterfundener Algo hat allenfalls als "Fingerübung" einen Sinn. Willst du hingegen wirklich was verschlüsseln, so nimm einen der Standard-Algos, die sind nach heutigem Stand der Technik leidlich sicher, was dein Algo sicher niemals erreichen kann.
    2. Um einen Verschlüsselungs-Algo zu erfinden, musst du dein Konzept schon bischen mehr ausarbeiten, als nur a=b, b=c, c=d, d=a einzugeben.
    3. Vermutlich wird sich niemand finden, der dir beim Algo-Konzipieren hilft, denn siehe punkt#1: Es ist dringend empfohlen, auf die bewährten, äusserst sicheren Algos zurückzugreifen, die's schon gibt, und die auch Bestandteil des Frameworks sind.
    4. Allerdings kann man dich mit Links vollpflastern, die verschiedene fertige Implementationen verschiedener Algos bieten - wie gesagt: keine davon ist auch nur ansatzweise sicher, aber lustig sind die teilweise schon.
      Den Rotations-Algo-Link haste ja nun schon (s.Post#2), mein Favorit der Eigenbau-Verschlüsselungen ist der hier: Für so simpel supper-gut
    ^this

    Zudem brauchen wir mehr Informationen. Willst du es überhaupt sicher haben? Ist es nur eine Spielerei mit Freunden oder vielleicht sogar nur zum Üben gedacht?

    1. Wenn du daraus lernen willst, solltest du dir bekannte Algorithmen anschauen. Lerne allgemein aus der Kryptografie, indem du dich im Internet schlau machst. Sowas z.B ist sehr interessant: fw-1.de/krypto/algorithmen.html

    2. Wenn du einfach nur einen Code haben möchtest, dann bitteschön. Empfehlen tue ich es dir überhaupt nicht. Diese Verschlüsslung ist exakt, wie du es haben möchtest. A = B, B = C, C = D usw. Es ist eine bekannte Verschlüsslung und ist einfach nur tierisch schlecht. Wenn du die Verschlüsslung selber nicht noch irgendwo versteckst(z.B in einem Haufen voller Zahlen und das Programm merkt sich, an welcher Stelle deine Verschlüsslung anfängt und wo aufhört) dann ist diese wirklich unsicher.

    VB.NET-Quellcode

    1. Private Function CaesarCrypt(ByVal cArr As Char()) As String
    2. Dim buffer As String = String.Empty
    3. For Each c As Char In cArr
    4. Dim i As Integer = Asc(c) + 1
    5. If i = 256 Then i = 0
    6. buffer &= Chr(i)
    7. Next
    8. Return buffer
    9. End Function
    10. Private Function CaesarDecrypt(ByVal cArr As Char()) As String
    11. Dim buffer As String = String.Empty
    12. For Each c As Char In cArr
    13. Dim i As Integer = Asc(c) - 1
    14. If i = 0 Then i = 255
    15. buffer &= Chr(i)
    16. Next
    17. Return buffer
    18. End Function


    3. Wenn du die Erfahrung hast und nur fragst, wie du anfangen sollst: Irgendwie. Solange du den Hinweg kennst, kannst du auch einen Zurückweg programmieren. Sei kreativ. Nutz aber kein "Zufall", sowas ist schwachsinnig und kann nicht entschlüsselt werden. Hier ein Beispiel:

    Nehmen wir mal das Wort "Hallo". H = I, A = C, L = 2, L = 3, O = P

    Die Verschlüsselung wäre wie folgt:
    Aus dem H entsteht ein H+1(im Alphabet), dass wäre ein I.
    Aus dem A entsteht ein I+2(im Alphabet), dass wäre ein C.
    Aus dem L entsteht eine 2, da L die 11. Stelle im Alphabet besetzt und 11 getrennt = 1 und 1 zusammenaddiert 2 ergibt.
    Aus dem L entsteht eine 3, da L+1(im Alphabet) nun die 12. Stelle im Alphabet besetzt und 12 getrennt = 1 und 2 zusammenaddiert 3 ergibt.
    Aus dem O entsteht ein P, da hier die Schleife neu anfängt.
    Desto länger dein Muster, desto sicherer.

    Die Entschlüsselung wäre:
    Char1 = -1(im Alphabet)
    Char2 = -2(im Alphabet)
    Char3 = X/2 = Y
    Char4 = -1(im Alphabet), X/2 = Y
    Char5 = -1(im Aphabet)

    Ich merke grade, dass man vielleicht für Char2 und Char3 eine andere Art nehmen sollte, da dies schwer zu entschlüsseln ist. Es ist vollkommen machbar, aber man müsste dem Programm vieles erklären. Es ist nicht einfach X/2.


    Viel Spaß.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.

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

    Ich hab diesbezüglich im Studium mal eine Aufgabe gehabt, bei der ein Caeser Chiffre in der Konsole umgesetzt werden musste (wir durften nicht .ToLower() und .ToUpper() benutzen) und da wird sehr gut die Umsetzung des Algorithmus von de.wikipedia.org/wiki/Caesar-V…%C3%BCsselung#Algorithmus gezeigt. Der Code bietet dem von @Sekki gegenüber den Vorteil, dass die Anzahl der Zeichen um die verschoben werden soll variabel ist.



    Grüße
    Väinämö
    Hey Leute, ich danke schonmal für eure Antworten :)

    Aber ich wollte jetzt auch keine Geheimsprache für die Wissenschaft für Agenten oder so entwickeln,
    sondern einfach so aus spass heraus damit man unter Freunden mal "chatten" kann, oder so.

    Also ich wollte jetzt kein MD-6 entwickeln oder so :)

    Hab da auch schon

    Textbox.Text.Replace("a", "b")

    gefunden.

    Vielen Dank :)

    QuatschMitSooS schrieb:

    Aber ich wollte jetzt auch keine Geheimsprache für die Wissenschaft für Agenten oder so entwickeln,
    Also eine "Fingerübung"

    QuatschMitSooS schrieb:

    Hab da auch schonTextbox.Text.Replace("a", "b")gefunden.
    Oh - da gibts noch viel viel mehr, was du noch finden solltest: Etwa Dictionary(of Char, Char) könnte für dich von höchstem Wert sein.
    Oder String.ToCharArray()

    Vielleicht ist aber auch "Finden an sich" das Thema, was dich am meisten voranbringt: VisualStudio richtig nutzen (Google ist nicht deine Mami)
    Also ich wollte jetzt kein MD-6 entwickeln oder so

    Na hoffentlich, denn MD-5 ist im eigentlichen Sinne keine Verschlüsselung, sondern ein Hashing Verfahren.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    QuatschMitSooS schrieb:

    Hey Leute, ich danke schonmal für eure Antworten :)

    Aber ich wollte jetzt auch keine Geheimsprache für die Wissenschaft für Agenten oder so entwickeln,
    sondern einfach so aus spass heraus damit man unter Freunden mal "chatten" kann, oder so.

    Also ich wollte jetzt kein MD-6 entwickeln oder so :)

    Hab da auch schon

    Textbox.Text.Replace("a", "b")

    gefunden.

    Vielen Dank :)


    Ich bin mir sicher, dass des zu Problemen führen wird. Und MD5 ist keine Verschlüsslung, eher ein "One-Way" Abgleich. Ich weiß leider nicht, wie man das nennt.

    Was ich dir empfehle ist tatsächlich der Code den ich oben zur Verfügung gestellt habe. Dieser ist ziemlich einfach.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.

    Sekki schrieb:

    Ich weiß leider nicht, wie man das nennt.
    Hash.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: