Page 1 sur 1

Cryptage (pour URL)

Posté : 03 juin 2011, 16:22
par magikbibi
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.

Re: Cryptage (pour URL)

Posté : 03 juin 2011, 18:52
par AB
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.

Re: Cryptage (pour URL)

Posté : 06 juin 2011, 09:00
par magikbibi
Merci pour ta réponse, je pense en effet finalement que ça sera le plus clean

Re: Cryptage (pour URL)

Posté : 06 juin 2011, 15:39
par popy
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 ?