2009-08-03 7 views
0

J'ai créé une application qui envoie un e-mail aux utilisateurs des résultats. Je veux inclure un lien dans l'URL que l'utilisateur peut cliquer sur et voir une ventilation de leurs résultats que je veux l'URL pour ressembler à quelque chose comme ceci:maked/hashed url param

http://www.mysite.com/quiz/view/32k4k2u4vxcv88xcv8cv0x98c9v7c7v8887cv

évidemment ne peut pas simplement l'ID de hachage cos qui est facile à l'ingénierie inverse, quelle est la meilleure façon suivante, la plus simple de le faire en gardant à l'esprit que je dois exécuter une requête sql pour comparer la valeur de hachage?

+0

Ne rien hash. Générer des GUID Stockez le GUID en tant que clé privée dans la base de données. –

Répondre

1

Vous pouvez attribuer à chaque instance un GUID, ce qui devrait être impossible à désosser (puisqu'il ne dépend pas de l'enregistrement), et unique. Ce que vous avez là ressemble un peu à un GUID (c'est-à-dire qu'il a l'air aléatoire et n'est pas lisible).

+0

o ja évidemment, idiot moi ... – brndnmg

1

Vous pouvez utiliser SALT pour obtenir un hachage plus conscient.

define("SALT", "some random string .fsddf09asf9sd0-f9sd0-f9sd-0f9s0a-9f-");  
$hash = md5(SALT.$user_id); 

Plus tard, lorsque l'utilisateur tente d'atteindre l'URL, d'abord générer à nouveau le hachage, avec le sel, et comparer avec le hachage de l'URL fournie.

Gardez à l'esprit md5 est déjà cassé algo. Utilisez certains des algos de hachage SHA.

Cordialement