Générer nombre à partir de texte et inversement - PHP - Programmation
Marsh Posté le 17-03-2009 à 23:30:00
possible probablement, en inventant un codage perso.
Intéressant à faire et à utiliser, probablement pas, par contre.
Marsh Posté le 18-03-2009 à 09:37:37
___ a écrit : Bonjour, |
Oui.
Exemple au hasard :
Code :
|
Voilà, on a répondu à ta question ?
Merci de mettre le sujet en [Résolu]
Marsh Posté le 18-03-2009 à 09:45:43
Comme l'a précisé skeye, c'est du codage. Tu peux choisir d'utiliser un code existant, ou d'en inventer un.
Marsh Posté le 18-03-2009 à 10:05:15
http://fr2.php.net/manual/en/function.str-rot13.php
Marsh Posté le 18-03-2009 à 10:37:53
Ça ne fait pas ce qu'il demande ça ...
Marsh Posté le 18-03-2009 à 12:32:39
Merci,
en effet j'avais pensé à faire un codage perso mais j'ai eu la même réflexion, "Intéressant à faire et à utiliser, probablement pas" ;-)
Et je me suis dit qu'il existait peut être des fonctions qui font ce genre de choses et que je ne connais pas.
On dit aussi que ça sert à rien de réinventer la roue, alors je demande vos connaissances.
Marsh Posté le 18-03-2009 à 13:55:47
Nos connaissances on veut bien les partager, mais il faudrait que tu nous expliques quel était le but initial peut-être si tu veux qu'on te suggère une autre solution...
Marsh Posté le 18-03-2009 à 14:04:22
C'est pour faire du cryptage d'infos?
Marsh Posté le 18-03-2009 à 14:09:41
skeye a écrit : Nos connaissances on veut bien les partager, mais il faudrait que tu nous explique quel était le but initial peut-être si tu veux qu'on te suggère une autre solution...:D |
Marsh Posté le 18-03-2009 à 16:18:54
skeye a écrit : Nos connaissances on veut bien les partager, mais il faudrait que tu nous expliques quel était le but initial peut-être si tu veux qu'on te suggère une autre solution...:D |
Bonne remarque.
C'est pour faire du cryptage d'infos? => c'est pas mon but mais ca y ressemble.
Alors mon but c'est d'avoir un code 'zefzefzefzef' (bon ça vous le savez) et de pouvoir le faire correspondre à un enregistrement dans une BD mysql;
Ce code correspond à un entier (trouvé avec ma fonction magique) ce qui me permettrait de faire un recherche sur un INT et non un VARCHAR donc plus rapide.
Et inversement à partir de ma base retrouver le code.
Je fais cela pour ne pas donner directement un entier (ni l'id) à l'utilisateur final.
J'espère que vous m'avez suivis !
Marsh Posté le 18-03-2009 à 16:22:26
___ a écrit : |
si c'est juste pour accélérer la recherche sur un champ varchar, il y a les indexes, pour ça.
Marsh Posté le 18-03-2009 à 16:31:49
___ a écrit : |
Si simple et si efficace !
Et personne n'y a pensé avant ?!
quelques remarques, quand-même...
- Pourquoi une recherche sur un INT serait-elle plus rapide que sur un VARCHAR ?
- Un index, ça n'irait pas ?
- tu as pensé à comparer le temps (hypothétiquement) économisé par ton système avec le temps (sûrement) dépensé pour passer ta fonction ?
Marsh Posté le 18-03-2009 à 17:18:36
Ce topic est surréaliste
Marsh Posté le 18-03-2009 à 18:32:54
LOL je vous fais rire et tant mieux :-D
oui c'est vrai il y a les index... J'étais out sur ce point, pourquoi pas.
Mais sur une BD limitée en taille et beaucoup d'enregistrements, on gagne vite qq mégas. De plus mon VARCHAR prendrait 16/32 caractères (=>octets) comparé à un INT (INT 4 octets), multiplié par des milliers d'enregistrements, la différence est vite grande.
tu as pensé à comparer le temps (hypothétiquement) économisé par ton système avec le temps (sûrement) dépensé pour passer ta fonction ? => à méditer...
Faut bien qu'il y en ait qui cherchent de nouveaux casses-têtes ;-)
Marsh Posté le 18-03-2009 à 18:43:30
___ a écrit : De plus mon VARCHAR prendrait 16/32 caractères (=>octets) comparé à un INT (INT 4 octets), multiplié par des milliers d'enregistrements, la différence est vite grande. |
ah parce-qu'en plus il faut que ton algo de conversion varchar=>int soit un algo de compression? Tu fumes la moquette là hein, vraiment.
Marsh Posté le 18-03-2009 à 18:46:59
A une epoque j'ai recherché cela ..
Je cherchais à tagger des fichiers sur serveur avec descriptions pour permettre d'avoir des recherche rapides ( en php ou shell )
cela en modifiant les date de création des fichiers .. useless vu que le format timestamp est limité sur sa longueur
Marsh Posté le 18-03-2009 à 18:58:12
ça me fait penser un peu à du hash son "accélération" de recherche. Pour ça, y'a le md5, par ex.
Marsh Posté le 18-03-2009 à 19:05:24
skeye a écrit : |
Non je compare les tailles mémoires si je mets un VARCHAR ou un INT dans ma BD. Par contre j'aimerais que ma fonction me fasse le café à 8h le matin.
J'ai pensé au md5 mais ce n'est que dans un sens... je voudrais pouvoir redonner le code à l'utilisateur à partir de l'entier.
J'en demande pas un peu trop ?
En tout cas j'apprécie vos propositions !
Marsh Posté le 18-03-2009 à 19:12:54
Hummmmm CRC32 ??? retourne le checksum d'une chaine
Marsh Posté le 18-03-2009 à 19:56:19
oui mais c'est comme md5 et sha1, on ne peut pas obtenir l'inverse !
Marsh Posté le 18-03-2009 à 20:00:30
ben tu stockes les 2... le MD5 (indexé), et l'id qui correspond. Tu peux communiquer sur les 2 valeurs selon tes désirs
à moins que tu sois sévèrement limité en espace dans ta bdd.
Marsh Posté le 18-03-2009 à 20:16:46
En ce qui me concerne, je n'ai toujours pas compris la finalité du truc
En quoi c'est mieux de stocker un code de 32 octets, plutôt qu'un ID qui en ferait entre 1 et 7 octets environ ?
Marsh Posté le 18-03-2009 à 20:55:49
Citation : ben tu stockes les 2... le MD5 (indexé), et l'id qui correspond[...] |
oui autant limiter !
Je souhaite fournir un code "chiffres et caractères" à un utilisateur, et pouvoir le retrouver dans ma BD avec l'entier correspondant;
ainsi on ne peut pas non plus deviner le code d'un autre utilisateur;
le tout en n'utilisant que peu d'espace mémoire en BD !
Marsh Posté le 18-03-2009 à 22:19:02
___ a écrit :
|
va droit au but : t'as combien d'espace mémoire disponible, et tu vises combien d'enregistrements ?
Marsh Posté le 18-03-2009 à 22:44:36
Dur de quantifier, disons 25 Mo en BD (totalité, limitons donc l'éventuel index et les enregistrements à quelques mégas) et 1000 voire 100 000 ou plus d'enregistrements !
Marsh Posté le 19-03-2009 à 08:22:57
Non mais arrêtez un peu les mecs, ça n'a aucun sens ce que vous essayez de faire là...la solution à son problème c'est de coller un index sur sa colonne, c'est tout.
Marsh Posté le 17-03-2009 à 19:28:03
Bonjour,
j'ai comme donnée une chaine de caractères (par exemple 'sdfjskdfjksdf');
je voudrais générer à partir de cela un entier, tout en voulant pouvoir retrouver la chaine initiale. En PHP.
Est-ce possible, qu'en pensez-vous ?
Résumé :
'sdksdkksdkkl' => 12344877 => 'sdksdkksdkkl'