2010-11-07 5 views
2

Je voudrais comprimer ou compresser la valeur de hachage résultat de MD5 ou SHA1 dans une application côté serveur afin que le client puisse la décompresser ou la supprimer, est-ce possible? C'est un problème d'utilisabilité pour mon application.Comment réduire la valeur de la valeur de hachage?

+0

Comment passez-vous la valeur? – Kobi

+0

pouvez-vous donner une raison d'affaires pour faire cela? – jcolebrand

+0

Par exemple: vous allez envoyer votre mot de passe à usage unique qui est le résultat d'une valeur de hachage, il serait si difficile pour l'utilisateur d'écrire 32 octets ... –

Répondre

3

Non, les valeurs de hachage ne peuvent pas être compressées. Par conception, leurs bits sont hautement aléatoires et ont une entropie maximale, il n'y a donc pas de redondance à compresser.

Si vous voulez rendre les valeurs de hachage plus facile à lire pour les utilisateurs que vous pouvez utiliser différentes astuces, tels que:

  • Affichage moins de chiffres. Au lieu de 32 chiffres, il suffit d'afficher 16.

  • Utilisation d'une base différente. Par exemple, si vous avez utilisé la base 62 en utilisant toutes les lettres majuscules et minuscules, plus le nombre 0-9 sous forme de chiffres, vous pouvez alors afficher un hachage de 128 bits en utilisant 22 lettres + chiffres par rapport à 32 chiffres hexadécimaux:

    journal (2) & approx; 21.5

  • Ajout d'espaces ou de ponctuation. Vous verrez généralement les touches CD imprimées avec des tirets comme AX7T4-BZ41O-JK3FF-QOZ96. Il est plus facile pour les utilisateurs de lire ceci que 20 chiffres coincés ensemble.

1

Les valeurs de hachage sont assez courtes; tenter une compression sur ces valeurs (assez aléatoires et très variées) est difficile et inefficace. Si vous voulez économiser de l'espace, tronquer la valeur pourrait vous aider, mais gardez à l'esprit que si vous le faites, vous augmentez l'espace de collision (et réduisez l'espace clé).

Questions connexes