2017-09-24 4 views

Répondre

0

Ceci est connu comme hash ID, un identifiant unique généralement généré à partir d'un attribut unique comme la clé primaire d'une entité dans la base de données. Les IDs de hachage sont généralement plus courts que les hachages classiques créés par les algorithmes de hachage cryptographiques tels que MD5 ou SHA-256 et, contrairement à ces derniers, les ID de hachage sont réversibles, ce qui signifie que nous pouvons décoder la valeur d'origine. Ils réduisent l'exposition de la mise en œuvre interne de votre application, ce qui peut améliorer la sécurité.

Découvrez hashids.org. Ce site fournit des implémentations dans divers langages de programmation.

Sauf si vous avez une bonne raison de faire autrement, évitez de générer les ID de hachage dans le client. En créant les ID de hachage sur le serveur, vous pouvez garantir que les ID sont uniques et cohérents avec les identifiants utilisés par le mécanisme par lequel votre application stocke les données.

Modifier pour commenter - voici la procédure que vous pourriez suivre pour utiliser un ID de hachage dans une URL:

Supposons que nous utilisons ID de hachage pour créer des liens vers des profils d'utilisateurs. Lorsque nous générons une page qui contient un lien vers un profil, notre application:

  1. Convertir l'ID utilisateur (. Ex 5) à un ID de hachage (ex 3ac4jx60.)
  2. Afficher la page avec un lien comme http://example.com/user/3ac4jx60

Si le visiteur du site clique sur ce lien, l'application reçoit la demande et:

  1. Decode l'ID de hachage dans l'URL pour obtenir l'ID utilisateur (3ac4jx605)
  2. Utilisez l'ID utilisateur pour récupérer l'enregistrement approprié et afficher le profil de l'utilisateur
+0

Merci. Mais comment le contenu de la page a-t-il été enregistré dans l'url avec cet identifiant unique? Vous pourriez montrer la mise en œuvre de ceci avec un exemple. – Gabriel

+0

Le contenu de la page n'est pas encodé dans l'URL, seule la valeur qui identifie les données à afficher sur la page. Par exemple, lors de l'enregistrement d'un JSFiddle, le site enregistre le code dans la base de données avec un ID, puis code cet ID dans un ID de hachage à usage public. Lorsque l'utilisateur visite l'URL de violon, le site décode l'ID de hachage à l'ID de base de données. J'ai mis à jour ma réponse pour illustrer ce processus. –