Générer des numéros de série pour votre appli

Soyez le premier à donner votre avis sur cette source.

Vue 10 037 fois - Téléchargée 6 713 fois

Description

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.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
60
Date d'inscription
dimanche 9 octobre 2005
Statut
Membre
Dernière intervention
30 novembre 2010

hé pour vous suivre faudrait quelqu un d asser genereux et intentionné parmis vous pour nous expliquer comment cela fonctionne car sinon hooo je pige rien aller comment exploiter tout cela
Messages postés
5
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
20 mars 2007

Je ne vois pas le problème. NOMBRE serait défini avant le traitement dans la Sub BoutGenerer et ne changerait pas de valeur durant ce traitement
Messages postés
24
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
19 janvier 2010

Le problème en faisant de NOMBRE une variable, c'est qu'on ne pourrait pas déclarer le tableau tTab(NOMBRE)

Sinon, c'est vrai qu'on peut encore remplacer 5 par NOMBRE+1
Messages postés
5
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
20 mars 2007

Pas mal

Par rapport au code de Pumbaa666, je mettrai NOMBRE en variable pour que le code soit universel au niveau du nombre de variables

Je remplacement le 5 par NOMBRE+1 dans le boucle For Num et dans le test If Num <>
Messages postés
24
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
19 janvier 2010

Ouais, c'est simple et efficace. Enfin, ça en à l'air... ;-)

Mais histoire d'optimiser encore un chouilla, faudrait utiliser un tableau, et non pas 5 variable. Comme ça non seulement ça prend moins de place dans le code, mais en plus ça permet de faire des codes à plus de 5 caractères par paquets.

Const NOMBRE = 4

Private Sub BoutGenerer_Click()
Dim tTab(NOMBRE), Num, vCount As Integer
Dim CharStr As String, FirstPass As Boolean
CharStr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim Resultat As String

For Num = 1 To 5
FirstPass = True

Do While (a + e) + (d - b) - (2 * e + (d - c)) <> 0 Or FirstPass
For vCount = 0 To NOMBRE
tTab(vCount) = Aleatoire(0, 35)
Next
FirstPass = False
Loop

For vCount = 0 To NOMBRE
Resultat = Resultat & Mid(CharStr, tTab(vCount) + 1, 1)
Next

If Num <> 5 Then Resultat = Resultat & "-"
Next Num

Text1.Text = Resultat
TextCrypte.Text = Crypter(Text1.Text & "")
End Sub
Afficher les 11 commentaires

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.