Salut à tous, voila je travaille dans une société qui utilise un programme écrit en vb6 pour décrypter des information, est ce que quelqu'un peut me dire le type d'algorithme utilisé
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 
'CIPHER.CLS
Option Explicit
 
Private msKeyString As String
Private msText As String
 
'~~~.KeyString
'Une chaîne (clé) utilisée dans l'encryptage et le décryptage
Public Property Let KeyString(sKeyString As String)
    msKeyString = sKeyString
    'Initialize
End Property
 
'~~~.Text
'Ecrit le texte à encrypter ou décrypter
Public Property Let Text(sText As String)
    msText = sText
End Property
 
'Lit le texte qui a été encrypté ou décrypté
Public Property Get Text() As String
    Text = msText
End Property
 
'~~~.DoXor
'Méthode d'encryptage ou de décryptage par ou exclusif
Public Sub DoXor()
    Dim nC As Integer
    Dim nB As Integer
    Dim lI As Long
    lI = 1
    For lI = 1 To Len(msText)
        nC = Asc(Mid(msText, lI, 1))
        nB = Int(Rnd * 256)
        Mid(msText, lI, 1) = Chr(nC Xor nB)
    Next lI
    'MsgBox msText
End Sub
 
'~~~.Stretch (extension)
'Conversion de n'importe quelle chaîne en chaîne imprimable
'et visualisable
Public Sub Stretch()
    Dim nC As Integer
    Dim lI As Long
    Dim lJ As Long
    Dim nK As Integer
    Dim lA As Long
    Dim sB As String
    lA = Len(msText)
    sB = Space(lA + (lA + 2) \ 3)
    For lI = 1 To lA
        nC = Asc(Mid(msText, lI, 1))
        lJ = lJ + 1
        Mid(sB, lJ, 1) = Chr((nC And 63) + 59)
        Select Case lI Mod 3
        Case 1
            nK = nK Or ((nC \ 64) * 16)
        Case 2
            nK = nK Or ((nC \ 64) * 4)
        Case 0
            nK = nK Or (nC \ 64)
            lJ = lJ + 1
            Mid(sB, lJ, 1) = Chr(nK + 59)
            nK = 0
        End Select
    Next lI
    If lA Mod 3 Then
        lJ = lJ + 1
        Mid(sB, lJ, 1) = Chr(nK + 59)
    End If
    msText = sB
    'MsgBox msText
End Sub
 
'~~~.Shrink (Compression)
'Inverse de la méthode Décompactage (Stretch);
'le résultat peut contenir n'importe quelle valeur d'octet (0-255)
Public Sub Shrink()
    Dim nC As Integer
    Dim nD As Integer
    Dim nE As Integer
    Dim lA As Long
    Dim lB As Long
    Dim lI As Long
    Dim lJ As Long
    Dim lK As Long
    Dim sB As String
 
On Error GoTo Errora
 
    lA = Len(msText)
    lB = lA - 1 - (lA - 1) \ 4
    sB = Space(lB)
    For lI = 1 To lB
        lJ = lJ + 1
        nC = Asc(Mid(msText, lJ, 1)) - 59
        Select Case lI Mod 3
        Case 1
            lK = lK + 4
            If lK > lA Then lK = lA
            nE = Asc(Mid(msText, lK, 1)) - 59
            nD = ((nE \ 16) And 3) * 64
        Case 2
            nD = ((nE \ 4) And 3) * 64
        Case 0
            nD = (nE And 3) * 64
            lJ = lJ + 1
        End Select
        Mid(sB, lI, 1) = Chr(nC Or nD)
    Next lI
    msText = sB
    'MsgBox sB
    Exit Sub
Errora:
    'msText = ""
End Sub
 
'Initialise les nombres aléatoires en utilisant la chaîne clé
Private Sub Initialize()
    Dim nI As Double
    Randomize Rnd(-1)
    For nI = 1 To Len(msKeyString)
        Randomize Rnd(-Rnd * Asc(Mid(msKeyString, nI, 1)))
    Next nI
End Sub