Ceneration d'un code de 14 chiffres

Fermé
siji Messages postés 43 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 17 mars 2008 - 8 janv. 2007 à 13:27
 claudia - 24 juil. 2010 à 19:55
salut
je veux un script en php qui consiste a generer un code de 14 chiffres avec une probabilite nulle qu'un code apparait pour une deuxieme fois
merci
A voir également:

16 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 14:21
Si si, tu peux générer un GUID.

Par exemple sous Windows il y a ça en standard dans le système.


Exemple en VBScript (.vbs):

guid = left(createobject("scriptlet.typelib").guid,38) 
msgbox guid



Je présume qu'en php ça doit exister...
7
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 janv. 2007 à 16:53
10^14 ! moi je trouve ça énorme.
il y a 10^10 habitant sur terre (enfin, en puissance de 10 sup)
ça fait donc 10 000 (10^4) code possible par habitant.
Je voi pas ce qu'on peut faire qui necessite autant de nombres différents !
4
blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 3 318
8 janv. 2007 à 17:33
Euh, on est plutôt 6 milliards, soit 6x10^9, tu en rajoutes 30%, non !

Demande à Sevran comment faire ! ;->

ça fait donc 10 000 (10^4) code possible par habitant.
Qui a dit qu'on voulait les distribuer aux habitants ?
T'es victime du syndrome IPv4 ? :-)

Le problème est plutôt de générer une clé qu'on ne retrouvera pas, genre "rechargement d'un compte mobile"...
0
oè sa parait énorme mais ce que je me demande aujourd'hui c'est de savoir à quel point c'est fiable. est ce qu'on peut d&terminer la probabilité de fraude ????
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
8 janv. 2007 à 13:35
ici c'est pas un fast food, tu commande pas et t'es pas servi !
2
blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 3 318
8 janv. 2007 à 14:10
probabilite nulle qu'un code apparait pour une deuxieme fois
Impossible, à moins d'enregistrer les codes déjà générés....
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 14:22
Tiens ben y'a pas à chercher bien loin:
https://www.php.net/uniqid

Je conseille quand même d'utiliser la méthode recommandée là:
https://www.php.net/manual/fr/function.uniqid.php#65879

qui est bien meilleure (générateur Mersenne Twister).

1
tu ne décris pas assez le besoin
la réponse pourrait tout aussi bien être une séquence en BDD...
pourquoi 14 digits au fait ?
1
siji Messages postés 43 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 17 mars 2008 2
8 janv. 2007 à 15:45
merci tout dabord pour la reponse
cest un chiffre simple compose de 14 nombres
si vous voulez plus dinfos c'est comme les codes des cartes de recharge
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 15:56
14 chiffres ?

Sous Windows, un GUID fait 128 bits (soit un nombre entre 0 et 340282366920938463463374607431768211455), ce qui est déjà très juste.
Je ne recommande déjà pas d'utiliser moins de 128 bits, alors avec 14 chiffres, c'est peine perdue: Tu aura un grand nombre de collisions (numéros identiques). C'est sûr.
1
siji Messages postés 43 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 17 mars 2008 2
8 janv. 2007 à 16:07
les 14 chiffres sont sous forme d'une chaine de caracters
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 16:40
mmm... donc si on prend a-z A-Z 0-9, ça donne

(26*2+10)^14 possibilités différentes, soit 12401769434657526912139264.
C'est déjà mieux.

Pour un code d'activation, ça peut suffire.

Pour une identifiant généré, je trouve cela insuffisant.
1
blux Messages postés 26545 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 22 décembre 2024 3 318
8 janv. 2007 à 16:42
10 chiffres de 0 à 9, sur 14 positions, ça fait 10^14...

Vraiment pas beaucoup, et pas beaucoup de garantie d'unicité, surtout s'ils doivent être aléatoires...
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 17:15
Je voi pas ce qu'on peut faire qui necessite autant de nombres différents !

Si tu choisi des billes dans un sac en remettant à chaque fois les billes dedans, tu aura des risques de retomber sur les mêmes billes.

Et il y a la loi de "Bill Gates": "640 ko sera bien suffisant pour tout le monde." :o)

Je connais aussi des auteurs de logiciels qui se disaient: Pas besoin d'un compteur plus grand. De toute façon d'ici l'an 2000 ce logiciel aura été remplacé par un autre.
1
siji Messages postés 43 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 17 mars 2008 2
8 janv. 2007 à 17:40
non tu ma pa compri c'est une chaine composee de 14 caracters est qui sont tous des chiffres de 0 a 1
le program doi generer a chaque foi une chaine differente des autres precedentes ok ?
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
8 janv. 2007 à 17:57
ok.
Donc 100 000 000 000 000 possibilités différentes.

ça paraît énorme, mais c'est pas si grand que ça.


Comme je l'ai dit, pour un code d'activation, ok (associé à un identifiant).

Comme identifiant, tu aura des problèmes.
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
9 janv. 2007 à 10:47
Je trouve ça tordu

ça peut être utile dans un cas: quand il n'y a pas de système centralisé qui créé les ID.

Mais bon dans la majorité de cas, un serveur SQL fait parfaitement l'affaire, en effet.
1
tes pas la seule moi je connais pas tu peux me le dire silteplai je ferai tous se que tu veux tu me donne le code je te donne mon numero ok ca marche merci
1
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 janv. 2007 à 08:58
mathématiquement, pour avoir une probabilité nulle, il suffit de retenir chaque code distribué, ou alors de les distribuer dans l'ordre. C'est d'ailleur cette colution qui est la meilleur à mon avis. Le ID ICQ semblent être distribué comme ça par exemple.
Je trouve ça tordu comme façon de raisonner de se dire " on n'a qu'a prendre 10^300 chiffres différent, comme ça on a pas trop de chance d'en distribuer deux pareils sur 10 personnes"
0