je souhaite créer "le MD5" d'une chaîne et souhaite avoir
comme résultat une chaîne de 16 caractères. J'utilise
pour cela le module Digest::MD5 et la méthode md5
le problème est que le résultat comporte des caractères accentués et parfois des retours à la ligne
1) y a -t-il un moyen pour que la résultat de la méthode
md5 ne comporte plus de caractères accentués?
2) La méthode md5_hex retourne une chaine de 32 caratères et sans caratères accentués (c'est un peu long)
y a-t-il une option pour imposer une "longeur" pour la chaine retournée?
Pierre.
________________________________________________________________
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
"Pierre Génieys" wrote in message <436c69f7$0$4499$:
2) La méthode md5_hex retourne une chaine de 32 caratères et sans caratères accentués (c'est un peu long) y a-t-il une option pour imposer une "longeur" pour la chaine retournée?
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en sortir, sinon ce n'est plus un MD5. On peut éventuellement utiliser du base64, qui code 6 bits par caractère (contre 4 en hexadécimal) : un MD5 s'écrira en base64 comme 22 caractères. Il y aurait bien la base85, qui permettrait de coder en 20 caractères, mais ce n'est pas très usité.
"Pierre Génieys" wrote in message
<436c69f7$0$4499$892e7fe2@authen.white.readfreenews.net>:
2) La méthode md5_hex retourne une chaine de 32 caratères et sans
caratères accentués (c'est un peu long) y a-t-il une option pour imposer
une "longeur" pour la chaine retournée?
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en
sortir, sinon ce n'est plus un MD5. On peut éventuellement utiliser du
base64, qui code 6 bits par caractère (contre 4 en hexadécimal) : un MD5
s'écrira en base64 comme 22 caractères. Il y aurait bien la base85, qui
permettrait de coder en 20 caractères, mais ce n'est pas très usité.
"Pierre Génieys" wrote in message <436c69f7$0$4499$:
2) La méthode md5_hex retourne une chaine de 32 caratères et sans caratères accentués (c'est un peu long) y a-t-il une option pour imposer une "longeur" pour la chaine retournée?
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en sortir, sinon ce n'est plus un MD5. On peut éventuellement utiliser du base64, qui code 6 bits par caractère (contre 4 en hexadécimal) : un MD5 s'écrira en base64 comme 22 caractères. Il y aurait bien la base85, qui permettrait de coder en 20 caractères, mais ce n'est pas très usité.
Pierre Génieys
Nicolas George wrote:
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en sortir, sinon ce n'est plus un MD5.
Le but est d'avoir à comparer des chaînes de longeur fixe au lieu de comparer des chaines de longeur inconnues (à priori).
Je ne veux pas impérativement utiliser du MD5
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur fixe (avec le moins de risque de collision) une sorte de clé et ensuite utiliser ces clés (de longeur fixe) afin de comparer les chaines d'origine.
J'espère être clair.
Pierre. ________________________________________________________________ échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
Nicolas George wrote:
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en
sortir, sinon ce n'est plus un MD5.
Le but est d'avoir à comparer des chaînes de longeur fixe au lieu de comparer
des chaines de longeur inconnues (à priori).
Je ne veux pas impérativement utiliser du MD5
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur
fixe (avec le moins de risque de collision) une sorte de clé
et ensuite utiliser ces clés (de longeur fixe) afin de comparer
les chaines d'origine.
J'espère être clair.
Pierre.
________________________________________________________________
échangez opinions et commentaires dans les forums de discussion.
http://www.usenetgratuit.com/
Un MD5, ça fait 128 bits, donc 32 chiffres hexadécimaux, il n'y a pas à en sortir, sinon ce n'est plus un MD5.
Le but est d'avoir à comparer des chaînes de longeur fixe au lieu de comparer des chaines de longeur inconnues (à priori).
Je ne veux pas impérativement utiliser du MD5
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur fixe (avec le moins de risque de collision) une sorte de clé et ensuite utiliser ces clés (de longeur fixe) afin de comparer les chaines d'origine.
J'espère être clair.
Pierre. ________________________________________________________________ échangez opinions et commentaires dans les forums de discussion. http://www.usenetgratuit.com/
Nicolas George
"Pierre Génieys" wrote in message <436e386c$0$23221$:
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur fixe (avec le moins de risque de collision) une sorte de clé et ensuite utiliser ces clés (de longeur fixe) afin de comparer les chaines d'origine.
Eh bien utilise le MD5 en hexa ou en base64 (hexa est plus facile parce qu'il n'y a pas de différence majuscules/minuscules et pas de caractères non-alphanumériques, mais moins dense), et tronque-le à la longueur que tu veux. Il faut juste être conscient que plus la chaîne est courte, et plus il y a de risques de collision par simple hasard.
"Pierre Génieys" wrote in message
<436e386c$0$23221$892e7fe2@authen.white.readfreenews.net>:
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur
fixe (avec le moins de risque de collision) une sorte de clé
et ensuite utiliser ces clés (de longeur fixe) afin de comparer
les chaines d'origine.
Eh bien utilise le MD5 en hexa ou en base64 (hexa est plus facile parce
qu'il n'y a pas de différence majuscules/minuscules et pas de caractères
non-alphanumériques, mais moins dense), et tronque-le à la longueur que tu
veux. Il faut juste être conscient que plus la chaîne est courte, et plus il
y a de risques de collision par simple hasard.
"Pierre Génieys" wrote in message <436e386c$0$23221$:
Je souhaite, pour chaque chaîne, créer une nouvelle chaine de longeur fixe (avec le moins de risque de collision) une sorte de clé et ensuite utiliser ces clés (de longeur fixe) afin de comparer les chaines d'origine.
Eh bien utilise le MD5 en hexa ou en base64 (hexa est plus facile parce qu'il n'y a pas de différence majuscules/minuscules et pas de caractères non-alphanumériques, mais moins dense), et tronque-le à la longueur que tu veux. Il faut juste être conscient que plus la chaîne est courte, et plus il y a de risques de collision par simple hasard.