Page 1 sur 1

Identifiant unique mysql php

Posté : 11 sept. 2010, 12:03
par altergo
Bonjour,

Ma table mysql est constitué de plusieurs champs, dont un id unique auto_increment, classique. Il y a possibilité pour l'utilisateur de supprimer une entrée. Je ne veux pas que l'id soit la seule clause pour suppression, la sécurité serait nulle.
Je cherche donc à générer un id unique pour chaque entrée, une sorte de clé.

id | nom | email |del_key
-------------------------------
1| toto |[email protected] | cle_unique

Ainsi, si l'utilisateur veut supprimer cette entrée, il me passera en URL la clé.

Comment générer une clé unique ? J'ai vu UUID() en mysql, mais ca fait un longue clé ! Est-ce vraiment unique ?
Je pensais aussi, je peux utiliser un md5 salté sur l'email, et une autre fonction de hash ?

Que me conseillez vous d'utiliser comme génération de clé unique ?

Merci !

Re: Identifiant unique mysql php

Posté : 11 sept. 2010, 12:11
par Aureusms
Bah si tu veux tu peux utiliser un :
$tab_temp = array_fill (0,10,rand(0,strtotime("now")));
$num = implode ('',$tab_temp);
$unique_id = sha1($num);
Je viens de l'écrire : j'ai pas tester :
array_fill rempli un tableau de 10 valeurs aléatoires entre 0 et le nombre de seconde depuis 1970.
implode linéaire le tout
et sha1 hash la linéarisation

Re: Identifiant unique mysql php

Posté : 11 sept. 2010, 13:54
par Ryle
A mon sens, entre supprimer un enregistrement à partir d'un id=421 ou d'une clé='XD666!10KMYON2POUET' ne fait pas une grosse différence...

Je pense que tes règles de sécurité ne devraient pas se baser sur "comment identifier un enregistrement pour le supprimer", mais d'avantage sur "qui a le droit de supprimer cet enregistrement" :)

Re: Identifiant unique mysql php

Posté : 11 sept. 2010, 17:54
par stealth35

Re: Identifiant unique mysql php

Posté : 12 sept. 2010, 16:19
par altergo
Aureusms > Merci pour l'idée de hasher le time() ! C'est une bonne idée, sure d'etre unique.

Ryle > Oui, mais dans mon cas je ne voudrais pas que l'utilisateur qui voit qu'il peut supprimer a partir de l'id change simplement l'id.. là si il tente de changer la clé il y a très peu de chance qu'il tombe sur une clé valide !

stealth35 > Merci pour cette fonction que je ne connaissais pas.

@+

Re: Identifiant unique mysql php

Posté : 12 sept. 2010, 22:56
par AB
Sinon pour UUID() d'après la doc mysql cette fonction est bien utilisée pour fournir un identifiant unique...

Re: Identifiant unique mysql php

Posté : 12 sept. 2010, 23:57
par dunbar
Je pense que Ryle à quand-même mis le doigt sur le réel souci.