Cryptage (pour URL)

Petit nouveau ! | 9 Messages

03 juin 2011, 16:22

Bonjour la communauté.

Actuellement mon site Internet affiche les pages de cette manière : www.monsite.fr?pageid=5
Le "5" étant l'id de mon enregistrement dans ma base MySql. Avec cette méthode livbre à n'importe qui de mettre un "6" et de consulter l'enregistrement qui a pour ID le "6".

Alors je souhaiterai crypter le chiffre correspondant à l'ID pour ensuite le décrypter afin de pouvoir faire ma requete. En finalité je veux que ça s'affiche ainsi : www.monsite.fr?pageid=ffKFsjhioGqlkjfFGzjiop
Petite info utile, je veux que le crode crypté soit jours identique pour un même chiffre (ID), de manière à ce qu'un internaute puisse copier/coller le lien pour l'envoyer à un ami.

Alors première solution :
- J'ajoute un champ "id_crypte" dans ma table, c'est unique pour chaque enregistrement de ma table, je peux le récupérer et le travailler avec une requete SQL
=> Seul soucis, il faut que je repasse derrière tous mes enregistrements.

Seconde solution :
- Crypter l'ID (le chiffre) et le décrypter pour faire une requete SQL.
Seulement avec les scripts que j'ai trouvé sur le net, tant le urlencode (bah oui ça doit passer en url) passe mal, tantot le code généré change à chaque exécution du script (même si la clé est inchangée).

Avez vous déjà rencontré ce genre d'exercice ?

Merci par avance.

ViPHP
AB
ViPHP | 5818 Messages

03 juin 2011, 18:52

Ta méthode 1 me semble pas mal. Cela t'impose juste de faire un update de ta table pour ajouter ce champ s'il n'y est pas encore mais bon tu n'auras à le faire qu'une fois. Et puis c'est plus sécurisé puisqu'il peut n'y avoir aucun rapport entre l'id et le nombre associé en utilisant uniquid() par exemple lors de l'enregistrement de ta ligne.

Petit nouveau ! | 9 Messages

06 juin 2011, 09:00

Merci pour ta réponse, je pense en effet finalement que ça sera le plus clean

Eléphant du PHP | 275 Messages

06 juin 2011, 15:39

Le "5" étant l'id de mon enregistrement dans ma base MySql. Avec cette méthode livbre à n'importe qui de mettre un "6" et de consulter l'enregistrement qui a pour ID le "6".
En quoi c'est un problème ?