Brute Force

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Hallo,

    ich habe mein eigenes kleines Brute Force Programm geschrieben (nicht für Böse zwecke gedacht) aber ich habe noch ein paar Schwierigkeiten.
    1. Wenn das Programm läuft, kann man es nicht mehr öffnen ich glaube das liebt an "for" kann man das ändern?
    2. Button 1 belegt Passwörter mit einer Länge, Button 2 belegt 2 Passwort längen.....aber ich hätte auch gerne ein Button der Verschiedene Passwort Längen überprüft!

    Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Chars() As String = {"A", "a", "B", "b", "C", "c", "D", "d", "E", "e", "F", "f", "G", "g", "H", "I", "i", "J", "j", "K", "k", "L", "l", "M", "m", "N", "n", "O", "o", "P", "p", "Q", "q", "R", "r", "S", "s", "T", "t", "U", "u", "V", "v", "W", "X", "x", "Y", "y", "Z", "z"}
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. For Each c1 As Char In Chars
    5. TextBox2.Text = c1
    6. If TextBox1.Text = c1 Then
    7. TextBox3.Text = c1
    8. Exit For
    9. End If
    10. Next
    11. End Sub
    12. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    13. For Each c1 As Char In Chars
    14. For Each c2 As Char In Chars
    15. TextBox2.Text = c1 & c2
    16. If TextBox1.Text = c1 & c2 Then
    17. TextBox3.Text = c1 & c2
    18. Exit For
    19. End If
    20. Next
    21. Next
    22. End Sub
    23. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    24. For Each c1 As Char In Chars
    25. For Each c2 As Char In Chars
    26. For Each c3 As Char In Chars
    27. If TextBox1.Text = c1 & c2 & c3 Then
    28. TextBox3.Text = c1 & c2 & c3
    29. Exit For
    30. End If
    31. Next
    32. Next
    33. Next
    34. End Sub
    35. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    36. For Each c1 As Char In Chars
    37. For Each c2 As Char In Chars
    38. For Each c3 As Char In Chars
    39. For Each c4 As Char In Chars
    40. If TextBox1.Text = c1 & c2 & c3 & c4 Then
    41. TextBox3.Text = c1 & c2 & c3 & c4
    42. Exit For
    43. End If
    44. Next
    45. Next
    46. Next
    47. Next
    48. End Sub
    49. Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    50. For Each c1 As Char In Chars
    51. For Each c2 As Char In Chars
    52. For Each c3 As Char In Chars
    53. For Each c4 As Char In Chars
    54. For Each c5 As Char In Chars
    55. TextBox2.Text = c1 & c2 & c3 & c4 & c4
    56. If TextBox1.Text = c1 & c2 & c3 & c4 & c5 Then
    57. TextBox3.Text = c1 & c2 & c3 & c4 & c5
    58. Exit For
    59. End If
    60. Next
    61. Next
    62. Next
    63. Next
    64. Next
    65. End Sub
    66. End Class


    Vielen Dank im vorraus

    Liebe Grüße
    Valli
    Wo ist die Logik wenn du in jeder ForEach TextBox2.Text neu belegst ?


    EDIT: Des weiteren mach es doch anders herum:

    VB.NET-Quellcode

    1. For Each c1 As Char In Chars
    2. For Each c2 As Char In Chars
    3. For Each c3 As Char In Chars
    4. For Each c4 As Char In Chars
    5. For Each c5 As Char In Chars
    6. TextBox2.Text = c1 & c2 & c3 & c4 & c4
    7. If TextBox1.Text = c1 & c2 & c3 & c4 & c5 Then
    8. TextBox3.Text = c1 & c2 & c3 & c4 & c5
    9. Exit For
    10. End If
    11. Next
    12. Next
    13. Next
    14. Next
    15. Next

    Wird zu:

    VB.NET-Quellcode

    1. Dim chararray As Char() = TextBox1.Text.Split(""c)
    2. Dim bool As Boolean
    3. For Each c As Char in chararray
    4. If Not Chars.Contains(c) Then bool = False
    5. Next
    6. If bool AndAlso TextBox3.Text.Length = 5 Then TextBox3.Text = TextBox1.Text


    Funktioniert für jede ForEach ^^


    EDIT2: Außerdem ist dein Chars bzw. der Nutzen (in meinem Code) Chars.Contains(c) überflüssig, du kannst auch c.IsLetter nehmen, kommt das selbe bei raus :)
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ThePlexian“ ()

    Brute-Force ist eine Form von Permutationen, und ist auch ein Teilgebiet der Mathematik "abzählende Kombinatorik".
    Permutations hab ich mich mal zum Thema verkünstelt, aber inzwischen bin ich noch weiter mit dem Kram.

    Noch besser als rekursive Algos sind nämlich iterative, die auch noch die Sortierreihenfolge beibehalten.

    aber ziemlich abgedrehtes Thema.
    @lurker::
    WEil das ja auch nicht laggt, wenn man (letztes Beispiel) 5 verschachtelte For-Schleifen hat, die je 52 -mal durchlaufen, also insgesamt 52^5 = 380.204.032 mal.
    380 Mio. mal Me.Refresh ist niiiiicht gut ^^
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Danke für die Tipps,
    Aber

    VB.NET-Quellcode

    1. Dim chararray As Char() = TextBox1.Split(""c)
    2. Dim bool As Boolean
    3. For Each c As Char in chararray
    4. If Not Chars.Contains(c) Then bool = False
    5. Next
    6. If bool AndAlso TextBox3.Text.Length = 5 Then TextBox3.Text = TextBox1.Text

    Ich bekomme diese Fehler Meldung:
    Fehler 1 Zeichenkonstanten müssen genau ein Zeichen enthalten.
    Fehler 2 "chararray" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.

    valli schrieb:

    Ich bekomme diese Fehler Meldung:
    Fehler 1 Zeichenkonstanten müssen genau ein Zeichen enthalten.
    Fehler 2 "chararray" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.

    War auch untested ^^
    In welcher Zeile kommt Fehler 1 ?
    Und hast du chararray richtig geschriebn oder die erste Zeile vergessen `? :D
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    ThePlexian schrieb:

    @lurker::
    WEil das ja auch nicht laggt, wenn man (letztes Beispiel) 5 verschachtelte For-Schleifen hat, die je 52 -mal durchlaufen, also insgesamt 52^5 = 380.204.032 mal.
    380 Mio. mal Me.Refresh ist niiiiicht gut ^^
    Stimmt :D, war mir auch bewusst, nochdazu verlangsamt dass das ganze EXTREM, nur gibt es besser alternativen?
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    Bitte editiere deine Posts einfach, und du hast das Text vergessen -.-
    Grundlagen sind nicht vorhanden oder ?
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Wenn ich Text einfüge bekomme ich immer noch eine Fehlermeldung
    Dim chararray As Char() = TextBox3.Text.Split("")
    Fehler 1 Ein Wert des Typs "1-dimensionales Array von String" kann nicht in "1-dimensionales Array von Char" konvertiert werden, da "String" nicht von "Char" abgeleitet ist.
    ich kann auch kurz die Fehlermeldung erklären - also da steht (zu gut deutsch): "Ein Char-Array ist kein String, und kann man auh nicht konvertieren"

    Also wie gesagt Grundlagen lernen, denn um das zu verstehen müsstest du den Unterschied von Char-Array und String verstehen, und um das zu verstehen müssteste überhaupt erstmal das Konzept von Datentypen verstehen, und das ist tatsächlich die Basis der Programmiersprache.

    Also dieses Buch lesen (hingegen das Galileio-Openbook ist Mist)