Convertir MD5 pour base62 URL

J'ai un script pour convertir la base de 62 (A-Za-z0-9), mais comment puis-je obtenir un certain nombre de MD5?

J'ai lu dans de nombreux endroits, que parce que le numéro à partir d'un MD5 est plus grand que php peut gérer un nombre entier, il sera infidèle... Que je veux un lien court de toute façon et n'a pas de planification sur l'utilisation de l'ensemble de hachage, peut-être, à seulement 8 caractères....

Donc ma question est comment faire pour récupérer une partie de la nombre de un hachage MD5?

C'est aussi une mauvaise idée d'utiliser une partie seulement de le hash MD5?

  • md5 hash n'est pas un nombre, de sorte qu'entendez-vous par "partie du numéro"?
  • md5 est un nombre représenté en base36 encodage j'ai pensé...
  • Vous êtes à demi-droite, un hachage md5 est un nombre hexadécimal représenté en base 16 (a-f0-9).
  • Non, md5() est par défaut converti en base 16 (hexadécimal), mais vous pouvez obtenir la sortie brute de même.
  • Un hachage md5 est un 128bit nombre. La représentation habituelle est dans l'hexagone, mais ce n'est pas nécessaire.
  • ok, alors comment puis-je convertir l'hexagone pour un certain nombre? Je sais que le nombre est trop grand pour php pour gérer dois-je donc utiliser substr et hexdec?
  • Je suis conscient de cela, mais je ne crois pas qu'il parle de la crue de la représentation de la table de hachage ici.
  • substr et hexdec ne fonctionne pas puisque vous ne pouvez pas calculer le nombre entier tout en le brisant en plusieurs parties avec substr.
  • En utilisant Base64 va rendre les choses beaucoup plus facile, car il encode consécutifs 3 octets blocs.
  • base64 n'est pas entièrement compatible avec les Url.
  • mais si je veux seulement une partie de la valeur de hachage de toute façon, alors quel est le mal à juste substr partie et ensuite hexdec et puis base62 convertir?
  • Je suis confus, vous voulez prendre une partie de l'md5 (base 16) de hachage, de le convertir en base 10 et ensuite de les convertir à nouveau à la base de 62?
  • oui... est-il possible de convertir directement de 16 à 62?
  • Oui, mais en fonction de la taille de la nombre pourrait ne pas être suffisant pour la stocker dans une variable de type float type, je vais modifier ma réponse sous peu.

InformationsquelleAutor Mark | 2009-12-10