Bonjour à tous, je travail sur un système de décryptage et mon code est vraiment très long et répétitif :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
        For Index1 As Integer = 0 To Chars.Count - 1
            Dim Chaine1 As String = Chars(Index1).ToString
 
            If (MD5(Chaine1) = StrMD5) Then
                FinalStr = Chaine1
                Exit Sub
            End If
        Next
 
        For Index1 As Integer = 0 To Chars.Count - 1
            For Index2 As Integer = 0 To Chars.Count - 1
                Dim Chaine2 As String = Chars(Index1).ToString & Chars(Index2).ToString
 
                If (MD5(Chaine2) = StrMD5) Then
                    FinalStr = Chaine2
                    Exit Sub
                End If
            Next
        Next
 
        For Index1 As Integer = 0 To Chars.Count - 1
            For Index2 As Integer = 0 To Chars.Count - 1
                For Index3 As Integer = 0 To Chars.Count - 1
                    Dim Chaine3 As String = Chars(Index1).ToString & Chars(Index2).ToString & Chars(Index3).ToString
 
                    If (MD5(Chaine3) = StrMD5) Then
                        FinalStr = Chaine3
                        Exit Sub
                    End If
                Next
            Next
        Next
 
        For Index1 As Integer = 0 To Chars.Count - 1
            For Index2 As Integer = 0 To Chars.Count - 1
                For Index3 As Integer = 0 To Chars.Count - 1
                    For Index4 As Integer = 0 To Chars.Count - 1
                        Dim Chaine4 As String = Chars(Index1).ToString & Chars(Index2).ToString & Chars(Index3).ToString & Chars(Index4).ToString
 
                        If (MD5(Chaine4) = StrMD5) Then
                            FinalStr = Chaine4
                            Exit Sub
                        End If
                    Next
                Next
            Next
        Next
 
        For Index1 As Integer = 0 To Chars.Count - 1
            For Index2 As Integer = 0 To Chars.Count - 1
                For Index3 As Integer = 0 To Chars.Count - 1
                    For Index4 As Integer = 0 To Chars.Count - 1
                        For Index5 As Integer = 0 To Chars.Count - 1
                            Dim Chaine5 As String = Chars(Index1).ToString & Chars(Index2).ToString & Chars(Index3).ToString & Chars(Index4).ToString & Chars(Index5).ToString
 
                            If (MD5(Chaine5) = StrMD5) Then
                                FinalStr = Chaine5
                                Exit Sub
                            End If
                        Next
                    Next
                Next
            Next
        Next
 
        For Index1 As Integer = 0 To Chars.Count - 1
            For Index2 As Integer = 0 To Chars.Count - 1
                For Index3 As Integer = 0 To Chars.Count - 1
                    For Index4 As Integer = 0 To Chars.Count - 1
                        For Index5 As Integer = 0 To Chars.Count - 1
                            For Index6 As Integer = 0 To Chars.Count - 1
                                Dim Chaine6 As String = Chars(Index1).ToString & Chars(Index2).ToString & Chars(Index3).ToString & Chars(Index4).ToString & Chars(Index5).ToString & Chars(Index6).ToString
 
                                If (MD5(Chaine6) = StrMD5) Then
                                    FinalStr = Chaine6
                                    Exit Sub
                                End If
                            Next
                        Next
                    Next
                Next
            Next
        Next
Savez-vous comment rétrécir (optimiser) ce code ?
Voilà, merci beaucoup et bonne semaine