vbmarh
Messages postés60Date d'inscriptiondimanche 9 octobre 2005StatutMembreDernière intervention30 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és5Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention20 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és24Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention19 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és5Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention20 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és24Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention19 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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és127Date d'inscriptionlundi 28 juillet 2003StatutMembreDernière intervention11 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és193Date d'inscriptiondimanche 16 décembre 2001StatutMembreDernière intervention29 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és38Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 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és38Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 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és193Date d'inscriptiondimanche 16 décembre 2001StatutMembreDernière intervention29 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.
26 janv. 2007 à 03:39
14 oct. 2004 à 12:03
13 oct. 2004 à 14:06
Sinon, c'est vrai qu'on peut encore remplacer 5 par NOMBRE+1
13 oct. 2004 à 12:29
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 <>
12 oct. 2004 à 00:29
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
10 oct. 2004 à 12:09
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
9 oct. 2004 à 21:02
9 oct. 2004 à 17:34
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
9 oct. 2004 à 17:18
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))
9 oct. 2004 à 17:16
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
9 oct. 2004 à 15:41