2010-05-12 5 views
0

EDIT: J'ai besoin de générer une chaîne de 7 caractères basée sur l'identifiant de la ligne. Donc, connaissant l'identifiant de l'image et une clé secrète, je devrais obtenir la chaîne générée.EDIT: J'ai besoin de générer une chaîne de 7 caractères basée sur l'identifiant de la ligne

la chaîne doit contenir les caractères de "a" à "z" et nombres de 0 à 9.

j'ai un répertoire qui contient des photos comme celle-ci

dir/p3/i2/S21/pouce .jpg

la chaîne générée est p3i2s21, puis est utilisée pour calculer le chemin de l'image.

EDIT: actuellement im en utilisant l'identifiant de l'image: id = 55 alors je modifier et je reçois path = 000000055 puis path = "000/000/055" puis path = « 000/000 /055/thumb.jpg "

prêt à l'emploi!

maintenant je veux quelque chose de plus intelligent, car il est facile de retrouver toutes les images à partir d'un serveur, car ids sont séquentiel: 1, 2, 3, 4, 5, 6 ...

donc je dois penser de créer à partir de 55 une chaîne qui a une longueur de 7 caractères et ne chevauchera pas d'autres nombres. Je peux même transformer les 55 à 0000055 et à partir de cette conversion en une chaîne de 7 caractères en utilisant une chaîne secrète. puis quand j'ai eu la chaîne secrète et l'id je veux récupérer cette chaîne de longueur de 7 caractères.

Est-ce possible? Je pensais à des hases mais ils utilisent seulement 0-9 et a-e et sont plus de caractères ..: s

+0

attends quoi? Je suis désolé mais j'ai besoin de plus de clarté, que demandez-vous ici? – zellio

+0

ok, je vais vous expliquer dans la question principale –

+0

Vérifiez cette question, il peut vous donner quelques idées. http://stackoverflow.com/questions/890907/ideas-to-create-a-small-10-digits-not-very-secure-hash – Jaime

Répondre

1

Je pense que vous auriez besoin d'utiliser une base de données pour faire cela. Vous pouvez générer 7 chaînes de caractères aléatoires et les stocker dans une table avec le chemin auquel elles sont mappées. A part ça, il n'y a pas vraiment de moyen facile de prendre un chemin arbitraire, de le "compresser" à 7 caractères, et ensuite de retrouver le chemin de ces 7 caractères.

+0

j'ai mieux expliqué dans la question principale –

0

Je voudrais ajouter une nouvelle colonne à votre table pour stocker une valeur GUID. De cette façon, vous avez un identifiant non séquentiel.

Si vous ne pouvez pas utiliser un GUID et qu'il a vraiment besoin de 7 caractères ... eh bien, ce que je ferais, c'est de générer le GUID de toute façon, prenez le (premier/dernier) 7 caractères, assurez-vous qu'il est unique, et enregistrez-le. Si ce n'était pas unique, je générerais un autre GUID jusqu'à ce que ce soit le cas.

Ceci est très similaire à la réponse d'Eric; Je voulais juste mentionner les GUID spécifiquement.

+0

oui, bien sûr, va ajouter une autre colonne dans la table, et bien sûr im en utilisant une base de données, le seul problème est d'obtenir cette chaîne 7char ... Je vais vérifier le GUID –

+0

@Totty - si vous nous dites quel système de base de données que vous utilisez, je suis Bien sûr, nous pourrions vous fournir une fonction pour générer une chaîne de 7 caractères unique/aléatoire. – overslacked

+0

La base de données mysql est utilisée. Merci (: –

Questions connexes