C'est une source très simple qui génère des numéros de série.Pratique pour vos applications commerciales. Je n'ais pas mis de commentaires car je trouve cette source vraiment facile à comprendre (j'ai même hésité à la mettre).
Bon maintenant ce qu'il reste à faire c'est le bout de code qui ira dans l'appli commerciale; à savoir la fonction qui aura pour argument un numéro de série et qui dira s'il est bon ou pas!
Niveau sécurité de la chose, je ne sais pas si ça se vaut; les experts de la sécurité et de VB, je vous laisse étayer dans les commentaires!
Source / Exemple :
'Code à mettre dans une form
Public i As String
Private Sub BoutGenerer_Click()
Dim a, b, c, d, e, Num As Integer
Dim Resultat As String
For Num = 1 To 5
boucle1:
a = Aleatoire(0, 35)
b = Aleatoire(0, 35)
c = Aleatoire(0, 35)
d = Aleatoire(0, 35)
e = Aleatoire(0, 35)
If (a + e) + (d - b) - (2 * e + (d - c)) = 0 Then
'traitement de a
If a < 10 Then
Resultat = Resultat & a
ElseIf a = 10 Then
Resultat = Resultat & "A"
ElseIf a = 11 Then
Resultat = Resultat & "B"
ElseIf a = 12 Then
Resultat = Resultat & "C"
ElseIf a = 13 Then
Resultat = Resultat & "D"
ElseIf a = 14 Then
Resultat = Resultat & "E"
ElseIf a = 15 Then
Resultat = Resultat & "F"
ElseIf a = 16 Then
Resultat = Resultat & "G"
ElseIf a = 17 Then
Resultat = Resultat & "H"
ElseIf a = 18 Then
Resultat = Resultat & "I"
ElseIf a = 19 Then
Resultat = Resultat & "J"
ElseIf a = 20 Then
Resultat = Resultat & "K"
ElseIf a = 21 Then
Resultat = Resultat & "L"
ElseIf a = 22 Then
Resultat = Resultat & "M"
ElseIf a = 23 Then
Resultat = Resultat & "N"
ElseIf a = 24 Then
Resultat = Resultat & "O"
ElseIf a = 25 Then
Resultat = Resultat & "P"
ElseIf a = 26 Then
Resultat = Resultat & "Q"
ElseIf a = 27 Then
Resultat = Resultat & "R"
ElseIf a = 28 Then
Resultat = Resultat & "S"
ElseIf a = 29 Then
Resultat = Resultat & "T"
ElseIf a = 30 Then
Resultat = Resultat & "U"
ElseIf a = 31 Then
Resultat = Resultat & "V"
ElseIf a = 32 Then
Resultat = Resultat & "W"
ElseIf a = 33 Then
Resultat = Resultat & "X"
ElseIf a = 34 Then
Resultat = Resultat & "Y"
ElseIf a = 35 Then
Resultat = Resultat & "Z"
End If
'traitement de b
If b < 10 Then
Resultat = Resultat & b
ElseIf b = 10 Then
Resultat = Resultat & "A"
ElseIf b = 11 Then
Resultat = Resultat & "B"
ElseIf b = 12 Then
Resultat = Resultat & "C"
ElseIf b = 13 Then
Resultat = Resultat & "D"
ElseIf b = 14 Then
Resultat = Resultat & "E"
ElseIf b = 15 Then
Resultat = Resultat & "F"
ElseIf b = 16 Then
Resultat = Resultat & "G"
ElseIf b = 17 Then
Resultat = Resultat & "H"
ElseIf b = 18 Then
Resultat = Resultat & "I"
ElseIf b = 19 Then
Resultat = Resultat & "J"
ElseIf b = 20 Then
Resultat = Resultat & "K"
ElseIf b = 21 Then
Resultat = Resultat & "L"
ElseIf b = 22 Then
Resultat = Resultat & "M"
ElseIf b = 23 Then
Resultat = Resultat & "N"
ElseIf b = 24 Then
Resultat = Resultat & "O"
ElseIf b = 25 Then
Resultat = Resultat & "P"
ElseIf b = 26 Then
Resultat = Resultat & "Q"
ElseIf b = 27 Then
Resultat = Resultat & "R"
ElseIf b = 28 Then
Resultat = Resultat & "S"
ElseIf b = 29 Then
Resultat = Resultat & "T"
ElseIf b = 30 Then
Resultat = Resultat & "U"
ElseIf b = 31 Then
Resultat = Resultat & "V"
ElseIf b = 32 Then
Resultat = Resultat & "W"
ElseIf b = 33 Then
Resultat = Resultat & "X"
ElseIf b = 34 Then
Resultat = Resultat & "Y"
ElseIf b = 35 Then
Resultat = Resultat & "Z"
End If
'traitement de c
If c < 10 Then
Resultat = Resultat & c
ElseIf c = 10 Then
Resultat = Resultat & "A"
ElseIf c = 11 Then
Resultat = Resultat & "B"
ElseIf c = 12 Then
Resultat = Resultat & "C"
ElseIf c = 13 Then
Resultat = Resultat & "D"
ElseIf c = 14 Then
Resultat = Resultat & "E"
ElseIf c = 15 Then
Resultat = Resultat & "F"
ElseIf c = 16 Then
Resultat = Resultat & "G"
ElseIf c = 17 Then
Resultat = Resultat & "H"
ElseIf c = 18 Then
Resultat = Resultat & "I"
ElseIf c = 19 Then
Resultat = Resultat & "J"
ElseIf c = 20 Then
Resultat = Resultat & "K"
ElseIf c = 21 Then
Resultat = Resultat & "L"
ElseIf c = 22 Then
Resultat = Resultat & "M"
ElseIf c = 23 Then
Resultat = Resultat & "N"
ElseIf c = 24 Then
Resultat = Resultat & "O"
ElseIf c = 25 Then
Resultat = Resultat & "P"
ElseIf c = 26 Then
Resultat = Resultat & "Q"
ElseIf c = 27 Then
Resultat = Resultat & "R"
ElseIf c = 28 Then
Resultat = Resultat & "S"
ElseIf c = 29 Then
Resultat = Resultat & "T"
ElseIf c = 30 Then
Resultat = Resultat & "U"
ElseIf c = 31 Then
Resultat = Resultat & "V"
ElseIf c = 32 Then
Resultat = Resultat & "W"
ElseIf c = 33 Then
Resultat = Resultat & "X"
ElseIf c = 34 Then
Resultat = Resultat & "Y"
ElseIf c = 35 Then
Resultat = Resultat & "Z"
End If
'traitement de d
If d < 10 Then
Resultat = Resultat & d
ElseIf d = 10 Then
Resultat = Resultat & "A"
ElseIf d = 11 Then
Resultat = Resultat & "B"
ElseIf d = 12 Then
Resultat = Resultat & "C"
ElseIf d = 13 Then
Resultat = Resultat & "D"
ElseIf d = 14 Then
Resultat = Resultat & "E"
ElseIf d = 15 Then
Resultat = Resultat & "F"
ElseIf d = 16 Then
Resultat = Resultat & "G"
ElseIf d = 17 Then
Resultat = Resultat & "H"
ElseIf d = 18 Then
Resultat = Resultat & "I"
ElseIf d = 19 Then
Resultat = Resultat & "J"
ElseIf d = 20 Then
Resultat = Resultat & "K"
ElseIf d = 21 Then
Resultat = Resultat & "L"
ElseIf d = 22 Then
Resultat = Resultat & "M"
ElseIf d = 23 Then
Resultat = Resultat & "N"
ElseIf d = 24 Then
Resultat = Resultat & "O"
ElseIf d = 25 Then
Resultat = Resultat & "P"
ElseIf d = 26 Then
Resultat = Resultat & "Q"
ElseIf d = 27 Then
Resultat = Resultat & "R"
ElseIf d = 28 Then
Resultat = Resultat & "S"
ElseIf d = 29 Then
Resultat = Resultat & "T"
ElseIf d = 30 Then
Resultat = Resultat & "U"
ElseIf d = 31 Then
Resultat = Resultat & "V"
ElseIf d = 32 Then
Resultat = Resultat & "W"
ElseIf d = 33 Then
Resultat = Resultat & "X"
ElseIf d = 34 Then
Resultat = Resultat & "Y"
ElseIf d = 35 Then
Resultat = Resultat & "Z"
End If
'traitement de e
If e < 10 Then
Resultat = Resultat & e
ElseIf e = 10 Then
Resultat = Resultat & "A"
ElseIf e = 11 Then
Resultat = Resultat & "B"
ElseIf e = 12 Then
Resultat = Resultat & "C"
ElseIf e = 13 Then
Resultat = Resultat & "D"
ElseIf e = 14 Then
Resultat = Resultat & "E"
ElseIf e = 15 Then
Resultat = Resultat & "F"
ElseIf e = 16 Then
Resultat = Resultat & "G"
ElseIf e = 17 Then
Resultat = Resultat & "H"
ElseIf e = 18 Then
Resultat = Resultat & "I"
ElseIf e = 19 Then
Resultat = Resultat & "J"
ElseIf e = 20 Then
Resultat = Resultat & "K"
ElseIf e = 21 Then
Resultat = Resultat & "L"
ElseIf e = 22 Then
Resultat = Resultat & "M"
ElseIf e = 23 Then
Resultat = Resultat & "N"
ElseIf e = 24 Then
Resultat = Resultat & "O"
ElseIf e = 25 Then
Resultat = Resultat & "P"
ElseIf e = 26 Then
Resultat = Resultat & "Q"
ElseIf e = 27 Then
Resultat = Resultat & "R"
ElseIf e = 28 Then
Resultat = Resultat & "S"
ElseIf e = 29 Then
Resultat = Resultat & "T"
ElseIf e = 30 Then
Resultat = Resultat & "U"
ElseIf e = 31 Then
Resultat = Resultat & "V"
ElseIf e = 32 Then
Resultat = Resultat & "W"
ElseIf e = 33 Then
Resultat = Resultat & "X"
ElseIf e = 34 Then
Resultat = Resultat & "Y"
ElseIf e = 35 Then
Resultat = Resultat & "Z"
End If
If Num <> 5 Then
Resultat = Resultat & "-"
End If
Else
GoTo boucle1
End If
Next Num
Text1.Text = Resultat
TextCrypte.Text = Crypter(Text1.Text & "")
TextA.Caption = "a=" & a
TextB.Caption = "b=" & b
TextC.Caption = "c=" & c
TextD.Caption = "d=" & d
TextE.Caption = "e=" & e
TextCalcul.Caption = "Calcul=" & (a + e) + (d - b) - (2 * e + (d - c))
End Sub
Private Sub Text1_Click()
Clipboard.Clear
Clipboard.SetText TextCrypte.Text & ""
MsgBox "Le numéro de série non crypté à été placé dans le presse-papier"
End Sub
Private Sub TextCrypte_Click()
Clipboard.Clear
Clipboard.SetText TextCrypte.Text & ""
MsgBox "Le numéro de série crypté à été placé dans le presse-papier"
End Sub
Public Function Crypter(ByRef str As String) As String
'permet de crypter mais aussi de décrypter avec la même fonction
'inconvéniant: n'a pas de clé de cryptage!!!
Dim Cr As String
Dim Ci As Integer
Dim carac As String
Cr = ""
For Ci = 1 To Len(str)
carac = Chr(Asc(Mid(str, Ci, 1)) Xor (Len(str) - Ci))
Cr = Cr + carac
Next Ci
Crypter = Cr
End Function
Public Function Aleatoire(AMini As Long, AMaxi As Long) As Long
Randomize
Aleatoire = Int((AMaxi - AMini + 1) * Rnd + AMini)
End Function
Conclusion :
La fonction de cryptage XOR a été récupéré sur ce site
Dites moi ce que vous en pensez.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.