Ceneration d'un code de 14 chiffres

siji Messages postés 43 Statut Membre -  
 claudia -
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
Configuration: Windows XP
Internet Explorer 6.0

16 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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
    1. blux Messages postés 5041 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. dipitch
       
      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
  3. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    ici c'est pas un fast food, tu commande pas et t'es pas servi !
    2
  4. blux Messages postés 5041 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    probabilite nulle qu'un code apparait pour une deuxieme fois
    Impossible, à moins d'enregistrer les codes déjà générés....
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. slooptoo
     
    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
    1. siji Messages postés 43 Statut Membre 2
       
      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
  7. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  8. siji Messages postés 43 Statut Membre 2
     
    les 14 chiffres sont sous forme d'une chaine de caracters
    1
  9. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  10. blux Messages postés 5041 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  11. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  12. siji Messages postés 43 Statut Membre 2
     
    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
  13. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  14. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  15. claudia
     
    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
  16. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    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