GÉNÉRER DES NUMÉROS DE SÉRIE POUR VOTRE APPLI

cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015 - 9 oct. 2004 à 15:41
vbmarh Messages postés 60 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 30 novembre 2010 - 26 janv. 2007 à 03:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26702-generer-des-numeros-de-serie-pour-votre-appli

vbmarh Messages postés 60 Date d'inscription dimanche 9 octobre 2005 Statut Membre Dernière intervention 30 novembre 2010
26 janv. 2007 à 03:39
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
cs_jm_s Messages postés 5 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 mars 2007
14 oct. 2004 à 12:03
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
pumbaa666 Messages postés 24 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 19 janvier 2010
13 oct. 2004 à 14:06
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
cs_jm_s Messages postés 5 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 mars 2007
13 oct. 2004 à 12:29
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 <>
pumbaa666 Messages postés 24 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 19 janvier 2010
12 oct. 2004 à 00:29
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
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
10 oct. 2004 à 12:09
> 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!

Mon avis, c'est que ton logiciel n'est pas très "secure"
Bah ! c'est pas grave, l'essentiel c'est de participer !

Si tu veux plus d'info, tu peux aussi allez voir :
VBLOCKER : PROTÉGEZ VOTRE APPLICATION COMMERCIALE
www.vbfrance.com/code.aspx?id=3227
AtomiKiller Messages postés 127 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 11 juin 2008
9 oct. 2004 à 21:02
Salut , franchement bravo c'est bien pensé , c'est pas con du tout et c'est assez simple :) , 9/10 car une amélioration était possible ;)
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
9 oct. 2004 à 17:34
Ah oui super, j'y avais pas pensé!!! C'est vrai que c'est mieux comme ça et pis ça tient sur 1 écran!
Sinon pour le bout de code que tu as retiré, c'était juste pour moi voir les valeurs choisies mais il est vrai que ça n'a aucune utilité. Par contre ce qui peut être plus intéressant (pour le développeur, pas pour celui qui utiliserait le programme commercial) c'est de compter le nombre d'itération.

Encore merci pour ton optimisation
pwoc Messages postés 38 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 25 décembre 2007
9 oct. 2004 à 17:18
Ah oui, j'ai retiré ce bout de code ne comprenant pas son utilité (il ne porte que sur la dernière génération...)

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))
pwoc Messages postés 38 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 25 décembre 2007
9 oct. 2004 à 17:16
Je me suis juste permis d'améliorer un petit peu ton code.... Je suis sur que tu vas comprendre en lisant

Private Sub BoutGenerer_Click()
Dim a, b, c, d, e, Num 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
a = Aleatoire(0, 35)
b = Aleatoire(0, 35)
c = Aleatoire(0, 35)
d = Aleatoire(0, 35)
e = Aleatoire(0, 35)
FirstPass = False
Loop
'traitement de a
Resultat = Resultat & Mid(CharStr, a + 1, 1)
'traitement de b
Resultat = Resultat & Mid(CharStr, b + 1, 1)
'traitement de c
Resultat = Resultat & Mid(CharStr, c + 1, 1)
'traitement de d
Resultat = Resultat & Mid(CharStr, d + 1, 1)
'traitement de e
Resultat = Resultat & Mid(CharStr, e + 1, 1)

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

Text1.Text = Resultat
TextCrypte.Text = Crypter(Text1.Text & "")
End Sub
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
9 oct. 2004 à 15:41
J'ai oublié de dire que bien sur il est possible de modifier le nombre de terme composant le s/n, il suffit pour celà de changer la valeur de la boucle For (le "5" pour être précis). Et de la même façon il est aussi possible et vivement conseillé de modifier le calcul de certification (et sa valeur résultante) comme ça, vous êtes sur d'avoir un numéro unique.
Rejoignez-nous