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?
Répondre
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.
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é).
Comment passez-vous la valeur? – Kobi
pouvez-vous donner une raison d'affaires pour faire cela? – jcolebrand
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 ... –